Warning: set_time_limit(): Cannot set time limit in safe mode in /home/www/dynamic/uv.ro/mesianic.uv.ro/public_html/main.php on line 580 templates/SwiftBlue0000755000000000000000000000000014571145665011605 5ustar templates/SwiftBlue/SwiftBlue.cfg0000755000000000000000000004021511500513604014233 0ustar The mxBB Development Team'; // // When creating a new template, you normally "clone" a template and modify a number of *.tpl files. // For similar templates this means only a few files are different. // For example: you may have a template similar to subSilver, but with a different overall_header.tpl - the other files are identical. // Then this template should only contain one *.tpl file, namely overall_header.tpl, // and with $mx_template_settings['cloned_template'] = 'subSilver'. // If this template is a full set of *.tpl files, leave this blank. $mx_template_settings['cloned_template'] = '_core'; // // Block border graphics are defined in mx_main_layout.tpl, within the 'graph_border' template environment. // Turning this setting 'false' will disable block border graphics. $mx_template_settings['border_graphics'] = false; /********************************************************************************\ | Define what graphics bundles to use | - these are very handy paths to ALL kind of phpBB/MX-Publisher graphics \********************************************************************************/ $mx_images['mx_graphics']['general'] = file_exists( $mx_root_path . $current_template_path . "/images/logo.gif" ) ? $current_template_path . "/images" : ( file_exists( $mx_root_path . $cloned_template_path . "/images/logo.gif" ) ? $cloned_template_path . "/images" : $default_template_path . "/images" ); $mx_images['mx_graphics']['page_icons'] = file_exists( $mx_root_path . $current_template_path . "/images/page_icons" ) ? $current_template_path . "/images/page_icons" : ( file_exists( $mx_root_path . $cloned_template_path . "/images/page_icons" ) ? $cloned_template_path . "/images/page_icons" : $default_template_path . "/images/page_icons" ); $mx_images['mx_graphics']['block_icons'] = file_exists( $mx_root_path . $current_template_path . "/images/block_icons" ) ? $current_template_path . "/images/block_icons" : ( file_exists( $mx_root_path . $cloned_template_path . "/images/block_icons" ) ? $cloned_template_path . "/images/block_icons" : $default_template_path . "/images/block_icons" ); $mx_images['mx_graphics']['menu_icons'] = file_exists( $mx_root_path . $current_template_path . "/images/menu_icons" ) ? $current_template_path . "/images/menu_icons" : ( file_exists( $mx_root_path . $cloned_template_path . "/images/menu_icons" ) ? $cloned_template_path . "/images/menu_icons" : $default_template_path . "/images/menu_icons" ); $mx_images['mx_graphics']['admin_icons'] = file_exists( $mx_root_path . $current_template_path . "/images/admin_icons" ) ? $current_template_path . "/images/admin_icons" : ( file_exists( $mx_root_path . $cloned_template_path . "/images/admin_icons" ) ? $cloned_template_path . "/images/admin_icons" : $default_template_path . "/images/admin_icons" ); $mx_images['mx_graphics']['phpbb_icons'] = !empty($current_template_path) && file_exists( $phpbb_root_path . $current_template_path . "/images" ) ? $current_template_path . "/images" : ( !empty($cloned_template_path) && file_exists( $phpbb_root_path . $cloned_template_path . "/images" ) ? $cloned_template_path . "/images" : $default_template_path . "/images"); // // Prefix all paths to get full img URLs // $current_template_images = PORTAL_URL . $mx_images['mx_graphics']['general']; // Logo etc $current_template_page_images = PORTAL_URL . $mx_images['mx_graphics']['page_icons']; // Used by adminCP - Pages $current_template_block_images = PORTAL_URL . $mx_images['mx_graphics']['block_icons']; // Used by userCP block buttons $current_template_menu_images = PORTAL_URL . $mx_images['mx_graphics']['menu_icons']; // Used by adminCP - Navigation Menu $current_template_admin_images = PORTAL_URL . $mx_images['mx_graphics']['admin_icons']; // Internal graphics for the MX-Publisher adminCP $current_template_phpbb_images = PHPBB_URL . $mx_images['mx_graphics']['phpbb_icons']; // phpBB graphics template $current_template_theme_images = PORTAL_URL . $current_template_path . '/theme/images'; // // Standalone MX-Publisher installation? Where are the phpbb images? // //$current_template_phpbb_images = PHPBB_URL . $mx_images['mx_graphics']['phpbb_icons']; // phpBB graphics template $current_template_phpbb_images = PHPBB_URL . $mx_images['mx_graphics']['phpbb_icons']; // phpBB graphics template // // Define the icon css style // $mx_images['mx_graphics']['icon_style'] = ''; /********************************************************************************\ | Page Navigation Images | 1. If you want to control the overall_header.tpl images from this *.cfg file, make defintions below | 2. Or if not, use hardcoded image paths in overall_header.tpl, just like in the phpBB standard subSilver overall_header.tpl. \********************************************************************************/ // // Use MX-Publisher graphics - normally the menu_icons bundle // $mx_images['mx_nav_home'] = "$current_template_menu_images/icon_home.gif"; // {NAV_IMAGES_HOME} $mx_images['mx_nav_forum'] = "$current_template_menu_images/icon_forum.gif"; // {NAV_IMAGES_FORUM} $mx_images['mx_nav_profile'] = "$current_template_menu_images/icon_profile.gif"; // {NAV_IMAGES_PROFILE} $mx_images['mx_nav_faq'] = "$current_template_menu_images/icon_faq.gif"; // {NAV_IMAGES_FAQ} $mx_images['mx_nav_search'] = "$current_template_menu_images/icon_search.gif"; // {NAV_IMAGES_SEARCH} $mx_images['mx_nav_members'] = "$current_template_menu_images/icon_members.gif"; // {NAV_IMAGES_MEMBERS} $mx_images['mx_nav_groups'] = "$current_template_menu_images/icon_groups.gif"; // {NAV_IMAGES_GROUPS} $mx_images['mx_nav_mail'] = "$current_template_menu_images/icon_mail.gif"; // {NAV_IMAGES_PRIVMSG} $mx_images['mx_nav_login'] = "$current_template_menu_images/icon_login.gif"; // {NAV_IMAGES_LOGIN_LOGOUT} $mx_images['mx_nav_register'] = "$current_template_menu_images/icon_register.gif"; // {NAV_IMAGES_REGISTER} // // Use standard phpBB graphics // /* $mx_images['mx_nav_home'] = "$current_template_phpbb_images/icon_minipost.gif"; $mx_images['mx_nav_forum'] = "$current_template_phpbb_images/icon_minipost.gif"; $mx_images['mx_nav_profile'] = "$current_template_phpbb_images/icon_mini_profile.gif"; $mx_images['mx_nav_faq'] = "$current_template_phpbb_images/icon_mini_faq.gif"; $mx_images['mx_nav_search'] = "$current_template_phpbb_images/icon_mini_search.gif"; $mx_images['mx_nav_members'] = "$current_template_phpbb_images/icon_mini_members.gif"; $mx_images['mx_nav_groups'] = "$current_template_phpbb_images/icon_mini_groups.gif"; $mx_images['mx_nav_mail'] = "$current_template_phpbb_images/icon_mini_message.gif"; $mx_images['mx_nav_login'] = "$current_template_phpbb_images/icon_mini_login.gif"; $mx_images['mx_nav_register'] = "$current_template_phpbb_images/icon_mini_register.gif"; */ /********************************************************************************\ | Block Images | - these images are used for the block editCP buttons and controls \********************************************************************************/ $mx_images['mx_contract'] = "$current_template_block_images/contract.gif"; $mx_images['mx_expand'] = "$current_template_block_images/expand.gif"; $mx_images['mx_block_edit_admin'] = "$current_template_block_images/block_edit_admin.gif"; $mx_images['mx_block_edit_split'] = "$current_template_block_images/block_edit_split.gif"; $mx_images['mx_block_edit'] = "$current_template_block_images/block_edit.gif"; $mx_images['mx_block_hidden'] = "$current_template_block_images/block_hidden.gif"; /********************************************************************************\ | adminCP/editCP Images | - these images are used for the adminCP & block editCP \********************************************************************************/ $mx_images['mx_spacer'] = "$current_template_phpbb_images/spacer.gif"; // // phpBB Graphics - for standalone MX-Publisher installation /* $images['icon_quote'] = "$current_template_phpbb_images/{LANG}/icon_quote.gif"; $images['icon_edit'] = "$current_template_phpbb_images/{LANG}/icon_edit.gif"; $images['icon_search'] = "$current_template_phpbb_images/{LANG}/icon_search.gif"; $images['icon_profile'] = "$current_template_phpbb_images/{LANG}/icon_profile.gif"; $images['icon_pm'] = "$current_template_phpbb_images/{LANG}/icon_pm.gif"; $images['icon_email'] = "$current_template_phpbb_images/{LANG}/icon_email.gif"; $images['icon_delpost'] = "$current_template_phpbb_images/icon_delete.gif"; $images['icon_ip'] = "$current_template_phpbb_images/{LANG}/icon_ip.gif"; $images['icon_www'] = "$current_template_phpbb_images/{LANG}/icon_www.gif"; $images['icon_icq'] = "$current_template_phpbb_images/{LANG}/icon_icq_add.gif"; $images['icon_aim'] = "$current_template_phpbb_images/{LANG}/icon_aim.gif"; $images['icon_yim'] = "$current_template_phpbb_images/{LANG}/icon_yim.gif"; $images['icon_msnm'] = "$current_template_phpbb_images/{LANG}/icon_msnm.gif"; $images['icon_minipost'] = "$current_template_phpbb_images/icon_minipost.gif"; $images['icon_gotopost'] = "$current_template_phpbb_images/icon_minipost.gif"; $images['icon_minipost_new'] = "$current_template_phpbb_images/icon_minipost_new.gif"; $images['icon_latest_reply'] = "$current_template_phpbb_images/icon_latest_reply.gif"; $images['icon_newest_reply'] = "$current_template_phpbb_images/icon_newest_reply.gif"; $images['forum'] = "$current_template_phpbb_images/folder_big.gif"; $images['forum_new'] = "$current_template_phpbb_images/folder_new_big.gif"; $images['forum_locked'] = "$current_template_phpbb_images/folder_locked_big.gif"; $images['folder'] = "$current_template_phpbb_images/folder.gif"; $images['folder_new'] = "$current_template_phpbb_images/folder_new.gif"; $images['folder_hot'] = "$current_template_phpbb_images/folder_hot.gif"; $images['folder_hot_new'] = "$current_template_phpbb_images/folder_new_hot.gif"; $images['folder_locked'] = "$current_template_phpbb_images/folder_lock.gif"; $images['folder_locked_new'] = "$current_template_phpbb_images/folder_lock_new.gif"; $images['folder_sticky'] = "$current_template_phpbb_images/folder_sticky.gif"; $images['folder_sticky_new'] = "$current_template_phpbb_images/folder_sticky_new.gif"; $images['folder_announce'] = "$current_template_phpbb_images/folder_announce.gif"; $images['folder_announce_new'] = "$current_template_phpbb_images/folder_announce_new.gif"; $images['post_new'] = "$current_template_phpbb_images/{LANG}/post.gif"; $images['post_locked'] = "$current_template_phpbb_images/{LANG}/reply-locked.gif"; $images['reply_new'] = "$current_template_phpbb_images/{LANG}/reply.gif"; $images['reply_locked'] = "$current_template_phpbb_images/{LANG}/reply-locked.gif"; $images['pm_inbox'] = "$current_template_phpbb_images/msg_inbox.gif"; $images['pm_outbox'] = "$current_template_phpbb_images/msg_outbox.gif"; $images['pm_savebox'] = "$current_template_phpbb_images/msg_savebox.gif"; $images['pm_sentbox'] = "$current_template_phpbb_images/msg_sentbox.gif"; $images['pm_readmsg'] = "$current_template_phpbb_images/folder.gif"; $images['pm_unreadmsg'] = "$current_template_phpbb_images/folder_new.gif"; $images['pm_replymsg'] = "$current_template_phpbb_images/{LANG}/reply.gif"; $images['pm_postmsg'] = "$current_template_phpbb_images/{LANG}/msg_newpost.gif"; $images['pm_quotemsg'] = "$current_template_phpbb_images/{LANG}/icon_quote.gif"; $images['pm_editmsg'] = "$current_template_phpbb_images/{LANG}/icon_edit.gif"; $images['pm_new_msg'] = ""; $images['pm_no_new_msg'] = ""; $images['Topic_watch'] = ""; $images['topic_un_watch'] = ""; $images['topic_mod_lock'] = "$current_template_phpbb_images/topic_lock.gif"; $images['topic_mod_unlock'] = "$current_template_phpbb_images/topic_unlock.gif"; $images['topic_mod_split'] = "$current_template_phpbb_images/topic_split.gif"; $images['topic_mod_move'] = "$current_template_phpbb_images/topic_move.gif"; $images['topic_mod_delete'] = "$current_template_phpbb_images/topic_delete.gif"; $images['voting_graphic'][0] = "$current_template_phpbb_images/voting_bar.gif"; $images['voting_graphic'][1] = "$current_template_phpbb_images/voting_bar.gif"; $images['voting_graphic'][2] = "$current_template_phpbb_images/voting_bar.gif"; $images['voting_graphic'][3] = "$current_template_phpbb_images/voting_bar.gif"; $images['voting_graphic'][4] = "$current_template_phpbb_images/voting_bar.gif"; */ $images['voting_graphic'][0] = "$current_template_phpbb_images/voting_bar.gif"; $images['voting_graphic'][1] = "$current_template_phpbb_images/voting_bar.gif"; $images['voting_graphic'][2] = "$current_template_phpbb_images/voting_bar.gif"; $images['voting_graphic'][3] = "$current_template_phpbb_images/voting_bar.gif"; $images['voting_graphic'][4] = "$current_template_phpbb_images/voting_bar.gif"; // // Define common theme colors (if not present in db) // $template_config_row['body_bgcolor'] = "FFFFFF"; $template_config_row['body_text'] = "383B3F"; $template_config_row['body_link'] = "006699"; $template_config_row['body_vlink'] = "006699"; $template_config_row['body_alink'] = "006699"; $template_config_row['body_hlink'] = "f3a625"; $template_config_row['tr_color1'] = "F7EEEE"; // row1 $template_config_row['tr_color2'] = "FBF4F4"; // row2 $template_config_row['tr_color3'] = "f1f1f1"; // row3 $template_config_row['th_color1'] = "FFA34F"; // bodyline border color $template_config_row['th_color2'] = "333333"; // forumline border color $template_config_row['th_color3'] = "d1d7dc"; // boxes border color $template_config_row['td_color1'] = "F7EEEE"; // code/quote boxes background $template_config_row['td_color2'] = "FBF4F4"; // post box background $template_config_row['fontface1'] = "Verdana,Arial,Helvetica,sans-serif"; $template_config_row['fontface2'] = "Trebuchet MS"; $template_config_row['fontface3'] = "Courier, \'Courier New\', sans-serif"; $template_config_row['fontsize3'] = "12"; $template_config_row['fontcolor1'] = "383B3F"; // Main font color $template_config_row['fontcolor2'] = "726363"; $template_config_row['fontcolor3'] = "FFA34F"; /********************************************************************************\ | CORE Images \********************************************************************************/ // // Logo // $mx_images['mx_logo'] = "$current_template_theme_images/logo.gif"; // // SiteLog // $mx_images['mx_dot'] = $images['folder']; // // Online Block // $mx_images['mx_who_is_online'] = "$current_template_theme_images/whosonline.gif"; ?> templates/SwiftBlue/SwiftBlue.css0000755000000000000000000021071614533311156014300 0ustar /* phpBB3 Style Sheet -------------------------------------------------------------- Style name: SwiftBlue BeitDina.NET Based on style: SwiftBlue Theme for phpBB2 by BitByBit, http://www.bitbybit.f2s.com Original author: OryNider, using subsilver2 Theme as a base. This is an alternative subsilver2 style with purple-blue colors. -------------------------------------------------------------- */ /* Layout ------------ */ * { /* Reset browsers default margin, padding and font sizes */ margin: 0; padding: 0; } abbr { text-decoration: none; } html { font-size: 100%; } /* General page style. The scroll bar colours only visible in IE5.5+ */ body { background-color: #E3F0FB; scrollbar-face-color: #BADBF5; scrollbar-highlight-color: #E3F0FB; scrollbar-shadow-color: #BADBF5; scrollbar-3dlight-color: #80BBEC; scrollbar-arrow-color: #072978; scrollbar-track-color: #DAECFA; scrollbar-darkshadow-color: #4B8DF1; padding-right: 0px; padding-left: 0px; background: url("./images/backgroundbluelight.gif"); padding-bottom: 0px; margin: 5px 10px 10px; font-family: Verdana, Geneva, 'Lucida Grande', Arial, Helvetica, sans-serif, droid-serif; padding-top: 0px; font-size: 89.5%; margin: 0; } #wrapheader { min-height: 120px; height: auto !important; height: 120px; /* background-image: url('./images/background.gif'); background-repeat: repeat-x;*/ /* padding: 0 25px 15px 25px;*/ padding: 0; } #wrapcentre { margin: 15px 25px 0 25px; } #wrapfooter { text-align: center; clear: both; } #wrapnav { width: 100%; margin: 0; background-color: #DAECFA; border-width: 1px; border-style: solid; border-color: #A9B8C2; } #logodesc { margin-bottom: 5px; padding: 5px 25px; background: transparent none 0 0 no-repeat; border-bottom: 1px solid #D9DFE4; } #menubar { margin: 0 25px; } #datebar { margin: 10px 25px 0 25px; } #findbar { width: 100%; margin: 0; padding: 0; border: 0; } .rules { background-color: #F9CC79; border-width: 1px; border-style: solid; border-color: #BB9860; padding: 4px; font-weight: normal; font-size: 1.1em; font-family: -apple-system, BlinkMacSystemFont, Roboto, "Lucida Grande", "Segoe UI", Arial, Helvetica, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; } .rules h3 { color: red; } #pageheader { } #pagecontent { } #pagefooter { } #poll { } #postrow { } #postdata { } /* Text --------------------- */ h1 { color: black; font-family: -apple-system, BlinkMacSystemFont, Roboto, "Lucida Grande", "Segoe UI", Arial, Helvetica, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; font-weight: bold; font-size: 1.8em; text-decoration: none; } h2 { font-family: -apple-system, BlinkMacSystemFont, Roboto, "Lucida Grande", "Segoe UI", Arial, Helvetica, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; font-weight: bold; font-size: 1.5em; text-decoration: none; line-height: 120%; } h3 { font-size: 1.3em; font-weight: bold; font-family: -apple-system, BlinkMacSystemFont, Roboto, "Lucida Grande", "Segoe UI", Arial, Helvetica, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; line-height: 120%; } h4 { margin: 0; font-size: 1.1em; font-weight: bold; } p { font-size: 1.1em; } p.moderators { margin: 0; float: left; color: black; font-weight: bold; } .rtl p.moderators { float: right; } p.linkmcp { margin: 0; float: right; white-space: nowrap; } .rtl p.linkmcp { float: left; } p.breadcrumbs { margin: 0; float: left; color: black; font-weight: bold; white-space: normal; font-size: 1em; } .rtl p.breadcrumbs { float: right; } p.datetime { margin: 0; float: right; white-space: nowrap; font-size: 1em; } .rtl p.datetime { float: left; } p.searchbar { padding: 2px 0; white-space: nowrap; } p.searchbarreg { margin: 0; float: right; white-space: nowrap; } .rtl p.searchbarreg { float: left; } p.forumdesc { padding-bottom: 4px; } p.topicauthor { margin: 1px 0; } p.topicdetails { margin: 1px 0; } .postreported, .postreported a:visited, .postreported a:hover, .postreported a:link, .postreported a:active { margin: 1px 0; color: red; font-weight:bold; } .postapprove, .postapprove a:visited, .postapprove a:hover, .postapprove a:link, .postapprove a:active { color: green; font-weight:bold; } .postapprove img, .postreported img { vertical-align: bottom; } .postauthor { color: #000000; } .postdetails { color: #000000; } /* The content of the posts (body of text) */ .postbody { font-size : 15px; line-height: 14px; font-family: -apple-system, BlinkMacSystemFont, Roboto, "Lucida Grande", "Segoe UI", Arial, Helvetica, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; } .postbody li, ol, ul { margin: 0 0 0 1.5em; } .rtl .postbody li, .rtl ol, .rtl ul { margin: 0 1.5em 0 0; } .posthilit { background-color: yellow; } .nav { color: black; font-weight: bold; } /* Action-bars (container for post/reply buttons, pagination, etc.) ---------------------------------------- */ fa-fw { width: 1.28571429em; text-align: center; } .action-bar { font-size: 11px; margin: 4px 0; } .forabg + .action-bar { margin-top: 2em; } .action-bar .button { margin-right: 5px; float: left; } .action-bar .button-search { margin-right: 0; } .action-bar .newtopic, .action-bar .postreply { border-color: #1C0046; background-color: #AB95CB; /* Old browsers */ /* FF3.6+ */ background-image: -webkit-linear-gradient(top, #AB95CB 0%, #1A0040 100%); background-image: linear-gradient(to bottom, #AB95CB 0%,#1A0040 100%); /* W3C */ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#AB95CB', endColorstr='#1A0040',GradientType=0 ); /* IE6-9 */ } .action-bar .newtopic:hover, .action-bar .postreply:hover { background-color: #1A0040; /* Old browsers */ /* FF3.6+ */ background-image: -webkit-linear-gradient(top, #1A0040 0%, #AB95CB 100%); background-image: linear-gradient(to bottom, #1A0040 0%,#AB95CB 100%); /* W3C */ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#1A0040', endColorstr='#AB95CB',GradientType=0 ); /* IE6-9 */ } .pagination { padding: 4px; color: black; font-size: 1em; font-weight: bold; } .cattitle { } /* General text */ .gen { margin: 1px 1px; font-size: 15px; } .genmed { margin: 1px 1px; font-size: 14px; } .gensmall { margin: 1px 1px; font-size: 11px; } .gen,.genmed,.gensmall { color : #000000; } a.gen,a.genmed,a.gensmall { color: #072978; text-decoration: none; } a.gen:hover,a.genmed:hover,a.gensmall:hover { color: #041642; text-decoration: underline; } /* The register, login, search etc links at the top of the page */ .mainmenu { font-size : 11px; color : #000000 } a.mainmenu { text-decoration: none; color : #072978; } a.mainmenu:hover{ text-decoration: underline; color : #041642; } /* Forum category titles */ .cattitle { font-weight: bold; font-size: 12px ; letter-spacing: 1px; color : #072978} a.cattitle { text-decoration: none; color : #072978; } a.cattitle:hover{ text-decoration: underline; } /* Forum title: Text and link to the forums used in: index.php */ .forumlink { font-weight: bold; font-size: 12px; color : #072978; } a.forumlink { text-decoration: none; color : #072978; } a.forumlink:hover{ text-decoration: underline; color : #041642; } /* Used for the navigation text, (Page 1,2,3 etc) and the navigation bar when in a forum */ .nav { font-weight: bold; font-size: 11px; color : #000000;} a.nav { text-decoration: none; color : #072978; } a.nav:hover { text-decoration: underline; } /* titles for the topics: could specify viewed link colour too */ .topictitle,h1,h2 { font-weight: bold; font-size: 11px; color : #000000; } a.topictitle:link { text-decoration: none; color : #072978; } a.topictitle:visited { text-decoration: none; color : #072978; } a.topictitle:hover { text-decoration: underline; color : #041642; } /* Name of poster in viewmsg.php and viewtopic.php and other places */ .name { font-size : 11px; color : #000000;} /* Location, number of posts, post date etc */ .postdetails { font-size : 10px; color : #000000; } a.postlink:link { text-decoration: none; color : #072978 } a.postlink:visited { text-decoration: none; color : #072978; } a.postlink:hover { text-decoration: underline; color : #041642} /* Quote & Code blocks */ .code { font-family: Courier, 'Courier New', sans-serif; font-size: 11px; color: #006600; background-color: #FAFAFA; border: #80BBEC; border-style: solid; border-left-width: 1px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px } .quote { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; color: #444444; line-height: 125%; background-color: #FAFAFA; border: #80BBEC; border-style: solid; border-left-width: 1px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px } /* Copyright and bottom info */ .copyright { font-size: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; color: #444444; letter-spacing: -1px;} a.copyright { color: #444444; text-decoration: none;} a.copyright:hover { color: #000000; text-decoration: underline;} .copyright { color: #444; font-weight: normal; font-family: "Lucida Grande", Verdana, Arial, Helvetica, sans-serif; } .titles { font-family: "Lucida Grande", Helvetica, Arial, sans-serif; font-weight: bold; font-size: 1.3em; text-decoration: none; } .error { color: red; } /* Horizontal lists ----------------------------------------*/ .navbar ul.linklist { padding: 2px 0; list-style-type: none; } ul.linklist { display: block; margin: 0; } .cp-main .panel { padding: 5px 10px; } ul.linklist > li { float: left; font-size: 1.1em; line-height: 2.2em; list-style-type: none; margin-right: 7px; width: auto; } ul.linklist > li.rightside, p.rightside, a.rightside { float: right; margin-right: 0; margin-left: 7px; text-align: right; } ul.navlinks { border-top: 1px solid transparent; } ul.leftside { float: left; margin-left: 0; margin-right: 5px; text-align: left; } ul.rightside { float: right; margin-left: 5px; margin-right: -5px; text-align: right; } ul.linklist li.responsive-menu { position: relative; margin: 0 5px 0 0; } .hasjs ul.linklist.leftside, .hasjs ul.linklist.rightside { max-width: 48%; } .hasjs ul.linklist.fullwidth { max-width: none; } li.responsive-menu.dropdown-right .dropdown { left: -9px; } li.responsive-menu.dropdown-left .dropdown { right: -6px; } ul.linklist .dropdown { top: 22px; } ul.linklist .dropdown-up .dropdown { bottom: 18px; top: auto; } /* Bulletin icons for list items ----------------------------------------*/ ul.linklist.bulletin > li:before { display: inline-block; content: "\2022"; font-size: inherit; line-height: inherit; padding-right: 4px; } ul.linklist.bulletin > li:first-child:before, ul.linklist.bulletin > li.rightside:last-child:before { content: none; } ul.linklist.bulletin > li.no-bulletin:before { content: none; } .responsive-menu:before { display: none !important; } /* Profile in overall_header.html */ .header-profile { display: inline-block; vertical-align: top; } a.header-avatar, a.header-avatar:hover { text-decoration: none; } a.header-avatar img { margin-bottom: 2px; max-height: 20px; vertical-align: middle; width: auto; } a.header-avatar span:after { content: '\f0dd'; display: inline-block; font: normal normal normal 14px/1 FontAwesome; padding-left: 6px; padding-top: 2px; vertical-align: top; } /** * The default CSS stylesheet used for all templates. * @package AutoIndex * @link http://autoindex.sourceforge.net */ /* Body */ .autoindex_body, html { background-color: #E3F0FB; scrollbar-face-color: #BADBF5; scrollbar-highlight-color: #E3F0FB; scrollbar-shadow-color: #BADBF5; scrollbar-3dlight-color: #80BBEC; scrollbar-arrow-color: #072978; scrollbar-track-color: #DAECFA; scrollbar-darkshadow-color: #4B8DF1; padding-right: 0px; padding-left: 0px; padding-bottom: 0px; font-family: -apple-system, BlinkMacSystemFont, Roboto, "Lucida Grande", "Segoe UI", Arial, Helvetica, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; padding-top: 0px; font-size: 89.5%; } /* Images */ .autoindex_body img { border: none; } /* Tables */ .autoindex_table.table2 { border: none; border-spacing: 0px; } .autoindex_table.table2 { padding: 2px; } .autoindex_table.table2 thead th { font-weight: normal; text-transform: uppercase; line-height: 1.3em; font-size: 1em; padding: 0 0 4px 3px; } .light_row { background-color: #F2F6FC; border: 0.1em solid #E3E3F04A; padding: 2px; } .dark_row { background-color: #BADBF5; border: 0.1em solid #E3E3F04A; padding: 2px; } .autoindex_td { background-color: #E3F0FB; /* font-family: verdana, lucidia, sans-serif; */ border: 0.1em solid #FFE3F04A; padding: 2px; } .autoindex_td_left { /* font-family: verdana, lucidia, sans-serif; */ border: 0.1em solid #E3E3F04A; padding: 2px; text-align: left; } .autoindex_td_right { /* font-family: verdana, lucidia, sans-serif; */ border: 0.1em solid #E3E3F04A; padding: 2px; text-align: right; } .autoindex_th { font-weight: bold; background-color: #80BBEC; border: 0.28em solid #FF01033; padding: 2px; } /* Links */ .plain_link { background-color: #FFE3F052; } .autoindex_a:visited, .autoindex_a:active { text-decoration: none; background-color: #FFFFE324; } .autoindex_a:link { background-color: #FFE3F04A; } .autoindex_a:hover { text-decoration: overline underline; } /* Buttons */ .button { color: #707070; background-color : #F0F2F485; text-align: left; vertical-align: middle; font-weight: bold; cursor: pointer; border-color: #1C0046; padding: 3px 10px 3px 10px; } /* Misc. */ .paragraph { background: #006F2F6FC; } .autoindex_hr { background-color: #006E3F020; width: 75%; } .autoindex_small { font-size: 9px; } /* -------------------------------------------------------------- /* $Icons /* -------------------------------------------------------------- */ /* Global module setup ---------------------------------------- */ /* Renamed version of .fa class for agnostic usage of icon fonts. * Just change the name of the font after the 14/1 to the name of * the font you wish to use. */ .icon, .button .icon, blockquote cite:before, .uncited:before { font-family: FontAwesome; font-size: 14px; font-weight: normal; font-style: normal; font-variant: normal; line-height: 1; display: inline-block; /* stylelint-disable order/declaration-block-properties-specified-order */ -moz-osx-font-smoothing: grayscale; -webkit-font-smoothing: antialiased; /* stylelint-enable order/declaration-block-properties-specified-order */ text-rendering: auto; /* optimizelegibility throws things off #1094 */ } .icon:before { padding-right: 2px; } .button .icon:before { padding-right: 0; } /* Icon size classes - Default size is 14px, use these for small variations */ .icon.icon-xl { font-size: 20px; } .icon.icon-lg { font-size: 18px; } .icon.icon-md { font-size: 12px; } .icon.icon-sm { font-size: 10px; } /* icon modifiers */ .icon-tiny { font-size: 16px; vertical-align: text-bottom; width: 12px; -webkit-transform: scale(0.65, 0.75); transform: scale(0.65, 0.75); } .arrow-right .icon { float: right; } .arrow-left:hover .icon { margin-right: 5px; margin-left: -5px; } .arrow-left .icon { float: left; } .arrow-right:hover .icon { margin-right: -5px; margin-left: 5px; } .post-buttons .dropdown-contents .icon { float: right; margin-left: 5px; } .alert_close .icon:before { border-radius: 50%; display: block; width: 11px; height: 12px; padding: 0; } blockquote cite:before, .uncited:before { content: "\f10d"; /* Font Awesome quote-left */ } .rtl blockquote cite:before, .rtl .uncited:before { content: "\f10e"; /* Font Awesome quote-right */ } /* Dropdown menu ----------------------------------------*/ .dropdown-container { position: relative; } .dropdown-container-right { float: right; } .dropdown-container-left { float: left; } .nojs .dropdown-container:hover .dropdown { display: block !important; } .dropdown { display: none; position: absolute; left: 0; top: 1.2em; z-index: 2; border: 1px solid transparent; border-radius: 5px; padding: 9px 0 0; margin-right: -500px; } .dropdown.live-search { top: auto; } .dropdown-container.topic-tools { float: left; } .dropdown-up .dropdown { top: auto; bottom: 1.2em; padding: 0 0 9px; } .dropdown-left .dropdown, .nojs .rightside .dropdown { left: auto; right: 0; margin-left: -500px; margin-right: 0; } .dropdown-button-control .dropdown { top: 24px; } .dropdown-button-control.dropdown-up .dropdown { top: auto; bottom: 24px; } .dropdown .pointer, .dropdown .pointer-inner { position: absolute; width: 0; height: 0; border-top-width: 0; border-bottom: 10px solid transparent; border-left: 10px dashed transparent; border-right: 10px dashed transparent; -webkit-transform: rotate(360deg); /* better anti-aliasing in webkit */ display: block; } .dropdown-up .pointer, .dropdown-up .pointer-inner { border-bottom-width: 0; border-top: 10px solid transparent; } .dropdown .pointer { right: auto; left: 10px; top: -1px; z-index: 3; } .dropdown-up .pointer { bottom: -1px; top: auto; } .dropdown-left .dropdown .pointer, .nojs .rightside .dropdown .pointer { left: auto; right: 10px; } .dropdown .pointer-inner { top: auto; bottom: -11px; left: -10px; } .dropdown-up .pointer-inner { bottom: auto; top: -11px; } .dropdown .dropdown-contents { z-index: 2; overflow: hidden; overflow-y: auto; border: 1px solid transparent; border-radius: 5px; padding: 5px; position: relative; max-height: 300px; } .dropdown-contents a { display: block; padding: 5px; } .jumpbox { margin: 5px 0; } .jumpbox .dropdown li { border-top: 1px solid transparent; } .jumpbox .dropdown-select { margin: 0; } .jumpbox .dropdown-contents { padding: 0; text-decoration: none; } .jumpbox .dropdown-contents li { padding: 0; } .jumpbox .dropdown-contents a { margin-right: 20px; padding: 5px 10px; text-decoration: none; width: 100%; } .jumpbox .spacer { display: inline-block; width: 0px; } .jumpbox .spacer + .spacer { width: 20px; } .dropdown-contents a { display: block; padding: 5px; } .jumpbox .dropdown-select { margin: 0; } .jumpbox .dropdown-contents a { text-decoration: none; } .dropdown li { display: list-item; border-top: 1px dotted transparent; float: none !important; line-height: normal !important; font-size: 1em !important; list-style: none; margin: 0; white-space: nowrap; text-align: left; } .dropdown-contents > li { padding-right: 15px; } .dropdown-nonscroll > li { padding-right: 0; } .dropdown li:first-child, .dropdown li.separator + li, .dropdown li li { border-top: 0; } .dropdown li li:first-child { margin-top: 4px; } .dropdown li li:last-child { padding-bottom: 0; } .dropdown li li { border-top: 1px dotted transparent; padding-left: 18px; } .wrap .dropdown li, .dropdown.wrap li, .dropdown-extended li { white-space: normal; } .dropdown li.separator { border-top: 1px solid transparent; padding: 0; } .dropdown li.separator:first-child, .dropdown li.separator:last-child { display: none !important; } /* jQuery popups ---------------------------------------- */ .phpbb_alert { background-color: #FFFFFF; border-color: #999999; } .darken { background-color: #000000; } .loading_indicator { background-color: #000000; background-image: url("./images/loading.gif"); } .dropdown-extended ul li { border-top-color: #B9B9B9; } .dropdown-extended ul li:hover { background-color: #cfd1f6; color: #000000; } .dropdown-extended .header, .dropdown-extended .footer { border-color: #B9B9B9; color: #000000; } .dropdown-extended .footer { border-top-style: solid; border-top-width: 1px; } .dropdown-extended .header { background-color: #f1f2ff; /* Old browsers */ /* FF3.6+ */ background-image: -webkit-linear-gradient(top, #f1f2ff 0%, #caceeb 100%); background-image: linear-gradient(to bottom, #f1f2ff 0%,#caceeb 100%); /* W3C */ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f1f2ff', endColorstr='#caceeb',GradientType=0 ); /* IE6-9 */ } .dropdown .pointer { border-color: #B9B9B9 transparent; } .dropdown .pointer-inner { border-color: #FFF transparent; } .dropdown-extended .pointer-inner { border-color: #f1f2ff transparent; } .dropdown .dropdown-contents { background: #fff; border-color: #B9B9B9; box-shadow: 1px 3px 5px rgba(0, 0, 0, 0.2); } .dropdown-up .dropdown-contents { box-shadow: 1px 0 5px rgba(0, 0, 0, 0.2); } .dropdown li, .dropdown li li { border-color: #DCDCDC; } .dropdown li.separator { border-color: #DCDCDC; } /* Notifications ---------------------------------------- */ .notification_list p.notification-time { color: #4d4d77; } li.notification-reported strong, li.notification-disapproved strong { color: #0d5aa2; } .badge { background-color: #0d5aa2; color: #ffffff; } /* Responsive breadcrumbs ----------------------------------------*/ .breadcrumbs .crumb { float: left; font-weight: bold; word-wrap: normal; } .breadcrumbs .crumb:before { content: '\2039'; font-weight: bold; padding: 0 0.5em; } .breadcrumbs .crumb:first-child:before { content: none; } .breadcrumbs .crumb a { white-space: nowrap; text-overflow: ellipsis; vertical-align: bottom; overflow: hidden; } .breadcrumbs.wrapped .crumb a { letter-spacing: -.3px; } .breadcrumbs.wrapped .crumb.wrapped-medium a { letter-spacing: -.4px; } .breadcrumbs.wrapped .crumb.wrapped-tiny a { letter-spacing: -.5px; } .breadcrumbs .crumb.wrapped-max a { max-width: 120px; } .breadcrumbs .crumb.wrapped-wide a { max-width: 100px; } .breadcrumbs .crumb.wrapped-medium a { max-width: 80px; } .breadcrumbs .crumb.wrapped-small a { max-width: 60px; } .breadcrumbs .crumb.wrapped-tiny a { max-width: 40px; } /* Tables ------------ */ /* General font families for common tags */ font,th,td,p { font-family: Verdana, Geneva, 'Lucida Grande', Arial, Helvetica, sans-serif, droid-serif; } a:link,a:active,a:visited { color : #006699; } a:hover { text-decoration: underline; color : #DD6900; } hr { height: 0px; border: solid #80BBEC 0px; border-top-width: 1px;} /* This is the border line & background colour round the entire page */ .bodyline { background-color: #E3F0FB; background-image: url("./images/bodyline.jpg"); padding-bottom: 40px; border: 1px #4B8DF1 solid; } /* This is the outline round the main forum tables */ .forumline { background-color: #E3F0FB; border: 2px #006699 solid; } .profile { padding: 4px; } .tablebg { background-color: #A9B8C2; } /* Main table cell colours and backgrounds */ .row1 { background-color: #DAECFA; padding: 4px; } .row2 { background-color: #BADBF5; padding: 4px; } .row3 { background-color: #80BBEC; padding: 4px; } .row4 { background-color: #E4E8EB; padding: 4px; } .col1 { background-color: #BADBF5; padding: 4px; } .col2 { background-color: #DAECFA; padding: 4px; } /* This is for the table cell above the Topics, Post & Last posts on the index.php page By default this is the fading out gradiated silver background. However, you could replace this with a bitmap specific for each forum */ .rowpic { background-color: #E3F0FB; background-image: url('./images/cellpic2.jpg'); background-repeat: repeat-y; } .catdiv { height: 28px; background: white url('./images/cellpic2.jpg') repeat-y scroll top left; } .rtl .catdiv { background: white url('./images/cellpic2_rtl.jpg') repeat-y scroll top right; } /* Header cells - the blue and silver gradient backgrounds */ th { color: #FFA34F; font-size: 11px; font-weight : bold; background-color: #006699; height: 25px; background-image: url('./images/cellpic3.gif'); } .cat { height: 28px; background-color: #C7D0D7; text-indent: 4px; } .cat,.catHead,.catSides,.catLeft,.catRight,.catBottom { background-image: url('./images/cellpic1.gif'); background-color:#80BBEC; border: #E3F0FB; border-style: solid; height: 28px; } /* Setting additional nice inner borders for the main table cells. The names indicate which sides the border will be on. Don't worry if you don't understand this, just ignore it :-) */ td.cat,td.catHead,td.catBottom { height: 29px; border-width: 0px 0px 0px 0px; } th.thHead,th.thSides,th.thTop,th.thLeft,th.thRight,th.thBottom,th.thCornerL,th.thCornerR { font-weight: bold; border: #E3F0FB; border-style: solid; height: 28px; } td.row3Right,td.spaceRow { background-color: #80BBEC; border: #E3F0FB; border-style: solid; } th.thHead,td.catHead { font-size: 12px; border-width: 1px 1px 0px 1px; } th.thSides,td.catSides,td.spaceRow { border-width: 0px 1px 0px 1px; } th.thRight,td.catRight,td.row3Right { border-width: 0px 1px 0px 0px; } th.thLeft,td.catLeft { border-width: 0px 0px 0px 1px; } th.thBottom,td.catBottom { border-width: 0px 1px 1px 1px; } th.thTop { border-width: 1px 0px 0px 0px; } th.thCornerL { border-width: 1px 0px 0px 1px; } th.thCornerR { border-width: 1px 1px 0px 0px; } .spacer { background-color: #80BBEC; } hr { height: 1px; border-width: 0; background-color: #80BBEC; color: #80BBEC; } .legend { text-align:center; margin: 0 auto; } /* Links ------------ */ a:link { color: #006597; text-decoration: none; } a:active, a:visited { color: #005784; text-decoration: none; } a:hover { color: #D46400; text-decoration: underline; } a.forumlink { color: #069; font-weight: bold; font-family: Verdana, Geneva, 'Lucida Grande', Arial, Helvetica, sans-serif, droid-serif; font-size: 13px; } a.topictitle { margin: 1px 0; font-family: Verdana, Geneva, 'Lucida Grande', Arial, Helvetica, sans-serif, droid-serif; font-weight: bold; font-size: 13px; } a.topictitle:visited { color: #5493B4; text-decoration: none; } th a, th a:visited { color: #EC9443CF !important; text-decoration: none; } th a:hover { text-decoration: underline; } /* Form Elements ------------ */ form { margin: 0; padding: 0; border: 0; } input { color: #333333; font-family: Verdana, Geneva, 'Lucida Grande', Arial, Helvetica, sans-serif, droid-serif; font-size: 12px; font-weight: normal; padding: 1px; border: 1px solid #A9B8C2; background-color: #FAFAFA; } textarea { background-color: #FAFAFA; color: #333333; font-family: Verdana, Geneva, 'Lucida Grande', Arial, Helvetica, sans-serif, droid-serif; font-size: 14px; line-height: 15px; font-weight: normal; border: 1px solid #A9B8C2; padding: 2px; } select { color: #333333; background-color: #FAFAFA; font-family: Verdana, Geneva, 'Lucida Grande', Arial, Helvetica, sans-serif, droid-serif; font-size: 1.1em; font-weight: normal; border: 1px solid #A9B8C2; padding: 1px; } option { padding: 0 1em 0 0; } option.disabled-option { color: graytext; } .rtl option { padding: 0 0 0 1em; } input.radio { border: none; background-color: transparent; } .post { background-color: #DAECFA; border-style: solid; border-width: 1px; } .btnbbcode { color: #000000; font-weight: normal; font-size: 0.8em; font-family: Verdana, Geneva, 'Lucida Grande', Arial, Helvetica, sans-serif, droid-serif; background-color: #DAECFA; border: 1px solid #666666; } .btnmain { font-weight: bold; background-color: #DAECFA; border: 1px solid #A9B8C2; cursor: pointer; padding: 1px 3px; font-size: 0.8em; } .btnlite { font-weight: normal; background-color: #DAECFA; border: 1px solid #A9B8C2; cursor: pointer; padding: 1px 3px; font-size: 0.8em; } .btnfile { font-weight: normal; background-color: #DAECFA; border: 1px solid #A9B8C2; padding: 1px 3px; font-size: 0.8em; } .helpline { background-color: #BADBF5; border-style: none; } /* BBCode ------------ */ .quotetitle, .attachtitle { margin: 10px 5px 0 5px; padding: 4px; border-width: 1px 1px 0 1px; border-style: solid; border-color: #A9B8C2; color: #333333; background-color: #A9B8C2; font-size: 0.85em; font-weight: bold; } .quotetitle .quotetitle { font-size: 1em; } .quotecontent, .attachcontent { margin: 0 5px 10px 5px; padding: 5px; border-color: #A9B8C2; border-width: 0 1px 1px 1px; border-style: solid; font-weight: normal; font-size: 1em; line-height: 1.4em; font-family: Verdana, Geneva, 'Lucida Grande', Arial, Helvetica, sans-serif, droid-serif; background-color: #FAFAFA; color: #4B5C77; } .attachcontent { font-size: 0.85em; } .codetitle { margin: 10px 5px 0 5px; padding: 2px 4px; border-width: 1px 1px 0 1px; border-style: solid; border-color: #A9B8C2; color: #333333; background-color: #A9B8C2; font-family: Verdana, Geneva, 'Lucida Grande', Arial, Helvetica, sans-serif, droid-serif; font-size: 0.8em; } .codecontent { direction: ltr; margin: 0 5px 10px 5px; padding: 5px; border-color: #A9B8C2; border-width: 0 1px 1px 1px; border-style: solid; font-weight: normal; color: #006600; font-size: 0.85em; font-family: Monaco, 'Courier New', monospace; background-color: #FAFAFA; } .postimage { max-width: 100%; } .syntaxbg { color: #E3F0FB; } .syntaxcomment { color: #FF8000; } .syntaxdefault { color: #0000BB; } .syntaxhtml { color: #000000; } .syntaxkeyword { color: #007700; } .syntaxstring { color: #DD0000; } /* Private messages ------------------ */ .pm_marked_colour { background-color: #000000; } .pm_replied_colour { background-color: #A9B8C2; } .pm_friend_colour { background-color: #007700; } .pm_foe_colour { background-color: #DD0000; } /* Misc ------------ */ img { border: none; } .sep { color: black; background-color: #FFA34F; } table.colortable td { padding: 0; } pre { font-size: 1.1em; font-family: Monaco, 'Courier New', monospace; } .nowrap { white-space: nowrap; } .username-coloured { font-weight: bold; } .emoji { min-height: 18px; min-width: 18px; height: 1em; width: 1em; } /* The largest text used in the index page title and toptic title etc. */ .maintitle,h1,h2 { font-weight: bold; font-size: 22px; font-family: "Trebuchet MS",Verdana, Arial, Helvetica, sans-serif; text-decoration: none; line-height : 120%; color : #000000; } /* Form elements */ input,textarea, select { color : #000000; border-color : #000000; } /* The text input fields background colour */ input.post, textarea.post, select { background-color : #E3F0FB; } input { text-indent : 2px; } /* The buttons used for bbCode styling in message post */ input.button { background-color : #F0F2F485; color : #000000 !important; } /* The main submit button option */ input.mainoption { background-color : #FAFAFA; font-weight : bold; } /* None-bold submit button */ input.liteoption { background-color : #FAFAFA; font-weight : normal; } /* This is the line in the posting page which shows the rollover help line. This is actually a text box, but if set to be the same colour as the background no one will know ;) */ .helpline { background-color: #BADBF5; border-style: none; } /* Former imageset */ span.imageset { display: inline-block; background: transparent none 0 0 no-repeat; margin: 0; padding: 0; width: 0; height: 0; overflow: hidden; } a.imageset { text-decoration: none !important; } /* Global imageset items */ .imageset.site_logo { background-image: url("./images/site_logo.png"); padding-top: 0px; padding-left: 240px; padding-right: 0px; padding-bottom: 100px; } .imageset.upload_bar { background-image: url("./images/upload_bar.gif"); padding-left: 280px; padding-top: 16px; } .imageset.poll_left { background-image: url("./images/poll_left.gif"); padding-left: 4px; padding-top: 12px; } .imageset.poll_center { background-image: url("./images/poll_center.gif"); padding-left: 1px; padding-top: 12px; } .imageset.poll_right { background-image: url("./images/poll_right.gif"); padding-left: 4px; padding-top: 12px; } .imageset.forum_link { background-image: url("./images/forum_link.gif"); padding-left: 46px; padding-top: 25px; } .imageset.forum_read { padding-left: 46px; padding-top: 25px; } .imageset.forum_read_locked { padding-left: 46px; padding-top: 25px; } .imageset.forum_read_subforum { padding-left: 46px; padding-top: 25px; } .imageset.forum_unread { padding-left: 46px; padding-top: 25px; } .imageset.forum_unread_locked { padding-left: 46px; padding-top: 25px; } .imageset.forum_unread_subforum { padding-left: 46px; padding-top: 25px; } .imageset.topic_moved { padding-left: 19px; padding-top: 18px; } .imageset.topic_read { padding-left: 19px; padding-top: 18px; } .imageset.topic_read_mine { padding-left: 19px; padding-top: 18px; } .imageset.topic_read_hot { padding-left: 19px; padding-top: 18px; } .imageset.topic_read_hot_mine { padding-left: 19px; padding-top: 18px; } .imageset.topic_read_locked { padding-left: 19px; padding-top: 18px; } .imageset.topic_read_locked_mine { padding-left: 19px; padding-top: 18px; } .imageset.topic_unread { padding-left: 19px; padding-top: 18px; } .imageset.topic_unread_mine { padding-left: 19px; padding-top: 18px; } .imageset.topic_unread_hot { padding-left: 19px; padding-top: 18px; } .imageset.topic_unread_hot_mine { padding-left: 19px; padding-top: 18px; } .imageset.topic_unread_locked { padding-left: 19px; padding-top: 18px; } .imageset.topic_unread_locked_mine { padding-left: 19px; padding-top: 18px; } .imageset.sticky_read { padding-left: 19px; padding-top: 18px; } .imageset.sticky_read_mine { padding-left: 19px; padding-top: 18px; } .imageset.sticky_read_locked { padding-left: 19px; padding-top: 18px; } .imageset.sticky_read_locked_mine { padding-left: 19px; padding-top: 18px; } .imageset.sticky_unread { padding-left: 19px; padding-top: 18px; } .imageset.sticky_unread_mine { padding-left: 19px; padding-top: 18px; } .imageset.sticky_unread_locked { padding-left: 19px; padding-top: 18px; } .imageset.sticky_unread_locked_mine { padding-left: 19px; padding-top: 18px; } .imageset.announce_read { padding-left: 19px; padding-top: 18px; } .imageset.announce_read_mine { padding-left: 19px; padding-top: 18px; } .imageset.announce_read_locked { padding-left: 19px; padding-top: 18px; } .imageset.announce_read_locked_mine { padding-left: 19px; padding-top: 18px; } .imageset.announce_unread { padding-left: 19px; padding-top: 18px; } .imageset.announce_unread_mine { padding-left: 19px; padding-top: 18px; } .imageset.announce_unread_locked { padding-left: 19px; padding-top: 18px; } .imageset.announce_unread_locked_mine { padding-left: 19px; padding-top: 18px; } .imageset.global_read { padding-left: 19px; padding-top: 18px; } .imageset.global_read_mine { padding-left: 19px; padding-top: 18px; } .imageset.global_read_locked { padding-left: 19px; padding-top: 18px; } .imageset.global_read_locked_mine { padding-left: 19px; padding-top: 18px; } .imageset.global_unread {; padding-left: 19px; padding-top: 18px; } .imageset.global_unread_mine { padding-left: 19px; padding-top: 18px; } .imageset.global_unread_locked { padding-left: 19px; padding-top: 18px; } .imageset.global_unread_locked_mine { padding-left: 19px; padding-top: 18px; } .imageset.pm_read { padding-left: 19px; padding-top: 18px; } .imageset.pm_unread { padding-left: 19px; padding-top: 18px; } .imageset.icon_post_target { padding-left: 12px; padding-top: 9px; } .imageset.icon_post_target_unread { padding-left: 12px; padding-top: 9px; } .imageset.icon_topic_attach { padding-left: 14px; padding-top: 18px; } .imageset.icon_topic_latest { padding-left: 18px; padding-top: 9px; } .imageset.icon_topic_newest { padding-left: 18px; padding-top: 9px; } .imageset.icon_topic_reported { padding-left: 19px; padding-top: 18px; } .imageset.icon_topic_unapproved { padding-left: 19px; padding-top: 18px; } .imageset.icon_topic_deleted { padding-left: 14px; padding-top: 14px; } /* English images for fallback */ .imageset.phpbb_aol-icon, .imageset.icon_contact_aim { padding-left: 72px; padding-top: 20px; } .imageset.icon_contact_email { padding-left: 72px; padding-top: 20px; } .imageset.phpbb_icq-icon, .imageset.icon_contact_icq { padding-left: 72px; padding-top: 20px; } .imageset.icon_contact_jabber { padding-left: 72px; padding-top: 20px; } .imageset.phpbb_wlm-icon, .imageset.icon_contact_msnm { padding-left: 72px; padding-top: 20px; } .imageset.icon_contact_pm { padding-left: 72px; padding-top: 20px; } .imageset.phpbb_yahoo-icon, .imageset.icon_contact_yahoo { padding-left: 72px; padding-top: 20px; } .imageset.phpbb_website-icon, .imageset.icon_contact_www { padding-left: 72px; padding-top: 20px; } .imageset.icon_post_delete { padding-left: 20px; padding-top: 20px; } .imageset.icon_post_edit { padding-left: 90px; padding-top: 20px; } .imageset.icon_post_info { padding-left: 20px; padding-top: 20px; } .imageset.icon_post_quote { padding-left: 90px; padding-top: 20px; } .imageset.icon_post_report { padding-left: 20px; padding-top: 20px; } .imageset.icon_user_online { padding-left: 72px; padding-top: 20px; } .imageset.icon_user_offline { padding-left: 72px; padding-top: 20px; } .imageset.icon_user_profile { padding-left: 72px; padding-top: 20px; } .imageset.icon_user_search { padding-left: 72px; padding-top: 20px; } .imageset.icon_user_warn { padding-left: 20px; padding-top: 20px; } .imageset.button_pm_new { padding-left: 97px; padding-top: 27px; } .imageset.button_pm_reply { padding-left: 90px; padding-top: 20px; } .imageset.button_topic_locked { padding-left: 97px; padding-top: 27px; } .imageset.button_topic_new { padding-left: 97px; padding-top: 27px; } .imageset.button_topic_reply { padding-left: 97px; padding-top: 27px; } /* Responsive breadcrumbs ----------------------------------------*/ .rtl .breadcrumbs .crumb { float: right; } /* Table styles ----------------------------------------*/ table.table1 { width: 100%; } .ucp-main table.table1 { padding: 2px; } table.table1 thead th { font-weight: normal; text-transform: uppercase; line-height: 1.3em; font-size: 1em; padding: 0 0 4px 3px; } table.table1 thead th span { padding-left: 7px; } table.table1 tbody tr { border: 1px solid transparent; } table.table1 td { font-size: 1.1em; } table.table1 tbody td { padding: 5px; border-top: 1px solid transparent; } table.table1 tbody th { padding: 5px; border-bottom: 1px solid transparent; text-align: left; } /* Specific column styles */ table.table1 .name { text-align: left; } table.table1 .center { text-align: center; } table.table1 .reportby { width: 15%; } table.table1 .posts { text-align: center; width: 7%; } table.table1 .joined { text-align: left; width: 15%; } table.table1 .active { text-align: left; width: 15%; } table.table1 .mark { text-align: center; width: 7%; } table.table1 .info { text-align: left; width: 30%; } table.table1 .info div { width: 100%; white-space: normal; overflow: hidden; } table.table1 .autocol { line-height: 2em; white-space: nowrap; } table.table1 thead .autocol { padding-left: 1em; } table.table1 span.rank-img { float: right; width: auto; } table.info td { padding: 3px; } table.info tbody th { padding: 3px; text-align: right; vertical-align: top; font-weight: normal; } table.table1 thead th { color: #FFFFFF; } table.table1 tbody tr { border-color: #BFC1CF; } table.table1 tbody tr:hover, table.table1 tbody tr.hover { background-color: #CFE1F6; color: #000; } table.table1 td { color: #536482; } table.table1 tbody td { border-top-color: #FAFAFA; } table.table1 tbody th { border-bottom-color: #000000; color: #333333; background-color: #FFFFFF; } table.info tbody th { color: #000000; } table.table1 td { color: #536482; } table.table1 td { font-size: 1.1em; } table.fixed-width-table { table-layout: fixed; } .rtl table.table1 thead th { padding: 0 3px 4px 0; } .rtl table.table1 thead th span { padding-left: 0; padding-right: 7px; } .rtl table.table1 tbody th { text-align: right; } /* Specific column styles */ .rtl table.table1 .name { text-align: right; } .rtl table.table1 .joined { text-align: right; } .rtl table.table1 .active { text-align: right; } .rtl table.table1 .info { text-align: right; } .rtl table.table1 thead .autocol { padding-left: 0; padding-right: 1em; } /* Specific column styles */ .ltr table.table1 .name { text-align: left; } .ltr table.table1 .joined { text-align: left; } .ltr table.table1 .active { text-align: left; } .ltr table.table1 .info { text-align: left; } .ltr table.table1 thead .autocol { padding-right: 0; padding-left: 1em; } .rtl table.table1 span.rank-img { float: left; } .rtl table.info tbody th { text-align: left; } .rtl .forumbg table.table1 { margin: 0 -1px -1px -2px; } .forumbg table.table1 { margin: 0; } .forumbg-table > .inner { margin: 0 -1px; } .color_palette_placeholder table { border-collapse: separate; border-spacing: 1px; } /* Control Panel Styles ---------------------------------------- */ /* Main CP box ----------------------------------------*/ .cp-menu { float:left; width: 19%; margin-top: 1em; margin-bottom: 5px; } .cp-main { float: left; width: 81%; } .cp-main .content { padding: 0; } .panel-container .panel p { font-size: 1.1em; } .panel-container .panel ol { margin-left: 2em; font-size: 1.1em; } .panel-container .panel li.row { border-bottom: 1px solid transparent; border-top: 1px solid transparent; } ul.cplist { margin-bottom: 5px; border-top: 1px solid transparent; } .panel-container .panel li.header dd, .panel-container .panel li.header dt { margin-bottom: 2px; } .panel-container table.table1 { margin-bottom: 1em; } .panel-container table.table1 thead th { font-weight: bold; border-bottom: 1px solid transparent; padding: 5px; } .panel-container table.table1 tbody th { font-style: italic; background-color: transparent !important; border-bottom: none; } .cp-main .pm-message { border: 1px solid transparent; margin: 10px 0; width: auto; float: none; } .pm-message h2 { padding-bottom: 5px; } .cp-main .postbody h3, .cp-main .box2 h3 { margin-top: 0; } .panel-container .postbody p.author { font-size: 1.1em; } .cp-main .buttons { margin-left: 0; } .cp-main ul.linklist { margin: 0; } /* MCP Specific tweaks */ .mcp-main .postbody { width: 100%; } .tabs-container h2 { float: left; margin-bottom: 0px; } /* CP tabs shared ----------------------------------------*/ .tabs, .minitabs { line-height: normal; } .tabs > ul, .minitabs > ul { list-style: none; margin: 0; padding: 0; position: relative; } .tabs .tab, .minitabs .tab { display: block; float: left; font-size: 1em; font-weight: bold; line-height: 1.4em; } .tabs .tab > a, .minitabs .tab > a { display: block; padding: 5px 9px; position: relative; text-decoration: none; white-space: nowrap; cursor: pointer; } /* CP tabbed menu ----------------------------------------*/ .tabs { margin: 20px 0 0 7px; } .tabs .tab > a { border: 1px solid transparent; border-radius: 4px 4px 0 0; margin: 1px 1px 0 0; } .tabs .activetab > a { margin-top: 0; padding-bottom: 7px; } /* Mini tabbed menu used in MCP ----------------------------------------*/ .minitabs { float: right; margin: 15px 7px 0 0; max-width: 50%; } .minitabs .tab { float: right; } .minitabs .tab > a { border-radius: 5px 5px 0 0; margin-left: 2px; } .minitabs .tab > a:hover { text-decoration: none; } /* Responsive tabs ----------------------------------------*/ .responsive-tab { position: relative; } .responsive-tab > a.responsive-tab-link { display: block; font-size: 1.6em; position: relative; width: 16px; line-height: 0.9em; text-decoration: none; } .responsive-tab .responsive-tab-link:before { content: ''; position: absolute; left: 10px; top: 7px; height: .125em; width: 14px; border-bottom: 0.125em solid transparent; border-top: 0.375em double transparent; } .tabs .dropdown, .minitabs .dropdown { top: 20px; margin-right: -2px; font-size: 1.1em; font-weight: normal; } .minitabs .dropdown { margin-right: -4px; } .tabs .dropdown-up .dropdown, .minitabs .dropdown-up .dropdown { bottom: 20px; top: auto; } .tabs .dropdown li { text-align: right; } .minitabs .dropdown li { text-align: left; } /* UCP navigation menu ----------------------------------------*/ /* Container for sub-navigation list */ .navigation { width: 100%; padding-top: 36px; } .navigation ul { list-style: none; } /* Default list state */ .navigation li { display: inline; font-weight: bold; margin: 1px 0; padding: 0; } /* Link styles for the sub-section links */ .navigation a { display: block; padding: 5px; margin: 1px 0; text-decoration: none; } .navigation a:hover { text-decoration: none; } /* Preferences pane layout ----------------------------------------*/ .cp-main h2 { border-bottom: none; padding: 0; margin-left: 10px; } /* Friends list */ .cp-mini { margin: 10px 15px 10px 5px; max-height: 200px; overflow-y: auto; padding: 5px 10px; border-radius: 7px; } dl.mini dt { font-weight: bold; } dl.mini dd { padding-top: 4px; } .friend-online { font-weight: bold; } .friend-offline { font-style: italic; } /* PM Styles ----------------------------------------*/ /* Defined rules list for PM options */ ol.def-rules { padding-left: 0; } ol.def-rules li { line-height: 180%; padding: 1px; } /* PM marking colours */ .pmlist li.bg1 { padding: 0 3px; } .pmlist li.bg2 { padding: 0 3px; } .pmlist li.pm_message_reported_colour, .pm_message_reported_colour { border-left-color: transparent; border-right-color: transparent; } .pmlist li.pm_marked_colour, .pm_marked_colour, .pmlist li.pm_replied_colour, .pm_replied_colour, .pmlist li.pm_friend_colour, .pm_friend_colour, .pmlist li.pm_foe_colour, .pm_foe_colour { padding: 0; border: solid 3px transparent; border-width: 0 3px; } .pm-legend { border-left-width: 10px; border-left-style: solid; border-right-width: 0; margin-bottom: 3px; padding-left: 3px; } /* Avatar gallery */ .gallery label { position: relative; float: left; margin: 10px; padding: 5px; width: auto; border: 1px solid transparent; text-align: center; } /* Responsive *CP navigation ----------------------------------------*/ @media only screen and (max-width: 900px), only screen and (max-device-width: 900px) { .nojs .tabs a span, .nojs .minitabs a span { max-width: 40px; overflow: hidden; text-overflow: ellipsis; letter-spacing: -.5px; } .cp-menu, .navigation, .cp-main { float: none; width: auto; margin: 0; } .navigation { padding: 0; margin: 0 auto; max-width: 320px; } .navigation a { background-image: none; } .navigation li:first-child a { border-top-left-radius: 5px; border-top-right-radius: 5px; } .navigation li:last-child a { border-bottom-left-radius: 5px; border-bottom-right-radius: 5px; } } /* Misc layout styles ---------------------------------------- */ /* column[1-2] styles are containers for two column layouts */ .rtl .column1 { float: right; clear: right; } .rtl .column2 { float: left; clear: left; } /* General classes for placing floating blocks */ .rtl .left-box { float: right; text-align: right; } .rtl .right-box { float: left; text-align: left; } .rtl dl.details dt { float: right; clear: right; text-align: left; } .rtl dl.details dd { margin-right: 0; margin-left: 0; padding-right: 5px; padding-left: 0; float: right; } *:first-child+html dl.details dd { margin-right: 30%; float: none; } * html dl.details dd { margin-right: 30%; float: none; } /* RTL imageset entries */ .rtl .imageset.site_logo { padding-right: 170px; padding-left: 0; } .rtl .imageset.upload_bar { padding-right: 280px; padding-left: 0; } .rtl .imageset.poll_left, .rtl .imageset.poll_right { padding-right: 4px; padding-left: 0; } .rtl .imageset.poll_center { padding-right: 1px; padding-left: 0; } .rtl .imageset.forum_link, .rtl .imageset.forum_read, .rtl .imageset.forum_read_locked, .rtl .imageset.forum_read_subforum, .rtl .imageset.forum_unread, .rtl .imageset.forum_unread_locked, .rtl .imageset.forum_unread_subforum { padding-right: 46px; padding-left: 0; } .rtl .imageset.topic_moved, .rtl .imageset.topic_read, .rtl .imageset.topic_read_mine, .rtl .imageset.topic_read_hot, .rtl .imageset.topic_read_hot_mine, .rtl .imageset.topic_read_locked, .rtl .imageset.topic_read_locked_mine, .rtl .imageset.topic_unread, .rtl .imageset.topic_unread_mine, .rtl .imageset.topic_unread_hot, .rtl .imageset.topic_unread_hot_mine, .rtl .imageset.topic_unread_locked, .rtl .imageset.topic_unread_locked_mine, .rtl .imageset.sticky_read, .rtl .imageset.sticky_read_mine, .rtl .imageset.sticky_read_locked, .rtl .imageset.sticky_read_locked_mine, .rtl .imageset.sticky_unread, .rtl .imageset.sticky_unread_mine, .rtl .imageset.sticky_unread_locked, .rtl .imageset.sticky_unread_locked_mine, .rtl .imageset.announce_read, .rtl .imageset.announce_read_mine, .rtl .imageset.announce_read_locked, .rtl .imageset.announce_read_locked_mine, .rtl .imageset.announce_unread, .rtl .imageset.announce_unread_mine, .rtl .imageset.announce_unread_locked, .rtl .imageset.announce_unread_locked_mine, .rtl .imageset.global_read, .rtl .imageset.global_read_mine, .rtl .imageset.global_read_locked, .rtl .imageset.global_read_locked_mine, .rtl .imageset.global_unread, .rtl .imageset.global_unread_mine, .rtl .imageset.global_unread_locked, .rtl .imageset.global_unread_locked_mine, .rtl .imageset.pm_read, .rtl .imageset.pm_unread, .rtl .imageset.icon_topic_reported, .rtl .imageset.icon_topic_unapproved { padding-right: 19px; padding-left: 0; } .rtl .imageset.icon_post_target, .rtl .imageset.icon_post_target_unread { padding-right: 12px; padding-left: 0; } .rtl .imageset.icon_topic_attach { padding-right: 14px; padding-left: 0; } .rtl .imageset.icon_topic_latest, .rtl .imageset.icon_topic_newest { padding-right: 18px; padding-left: 0; } #notification_list { display: none; position: absolute; width: 310px; z-index: 1; box-shadow: 3px 3px 5px darkgray; } #notification_list .notification_scroll { max-height: 350px; overflow-y: auto; overflow-x: hidden; } #notification_list table { width: 100%; } #notification_list .notification_title { padding: 3px; } #notification_list .notification_title:after { clear: both; content: ''; display: block; } #notification_list .header { padding: 5px; font-weight: bold; border: 1px solid #A9B8C2; border-bottom: 0; } #notification_list > .header > .header_settings { float: right; font-weight: normal; text-transform: none; } #notification_list .header:after { content: ''; display: table; clear: both; } #notification_list .footer { text-align: center; font-size: 1.2em; border: 1px solid #A9B8C2; border-top: 0; } .notification_list img { max-width: 50px; max-height: 50px; } #notification_list .footer > a { display: block; } #notification_list .notification-time { font-size: 0.9em; float: right; } .notification_list .notifications_time { font-size: 0.8em; } /* Responsive Design ---------------------------------------- */ @media (max-width: 320px) { select, .inputbox { max-width: 240px; } } /* Notifications list ----------------------------------------*/ @media (max-width: 350px) { .dropdown-extended .dropdown-contents { width: auto; } } @media (max-width: 430px) { .action-bar .search-box .inputbox { width: 120px; } .section-viewtopic .search-box .inputbox { width: 57px; } .action-bar .search-box .inputbox ::-moz-placeholder { content: "Search..."; } .action-bar .search-box .inputbox :-ms-input-placeholder { content: "Search..."; } .action-bar .search-box .inputbox ::-webkit-input-placeholder { content: "Search..."; } } @media (max-width: 500px) { dd label { white-space: normal; } select, .inputbox { max-width: 260px; } .captcha-panel dd.captcha { margin-left: 0; } .captcha-panel dd.captcha-image img { width: 100%; } dl.details dt, dl.details dd { width: auto; float: none; text-align: left; } dl.details dd { margin-left: 20px; } p.responsive-center { float: none; text-align: center; margin-bottom: 5px; } .action-bar > div { margin-bottom: 5px; } .action-bar > .pagination { float: none; clear: both; padding-bottom: 1px; text-align: center; } .action-bar > .pagination li.page-jump { margin: 0 2px; } p.jumpbox-return { display: none; } .display-options > label:nth-child(1) { display: block; margin-bottom: 5px; } .attach-controls { margin-top: 5px; width: 100%; } .quick-links .dropdown-trigger span { display: none; } } @media (max-width: 550px) { ul.topiclist.forums dt { margin-right: 0; } ul.topiclist.forums dt .list-inner { margin-right: 0; } ul.topiclist.forums dd.lastpost { display: none; } } @media (max-width: 700px) { .responsive-hide { display: none !important; } .responsive-show { display: block !important; } .responsive-show-inline { display: inline !important; } .responsive-show-inline-block { display: inline-block !important; } /* Content wrappers ----------------------------------------*/ html { height: auto; } body { padding: 0; } .wrap { border: none; border-radius: 0; margin: 0; min-width: 290px; padding: 0 5px; } /* Common block wrappers ----------------------------------------*/ .headerbar, .navbar, .forabg, .forumbg, .post, .panel { border-radius: 0; margin-left: -5px; margin-right: -5px; } .cp-main .forabg, .cp-main .forumdb, .cp-main .post, .cp-main .panel { border-radius: 7px; } /* Logo block ----------------------------------------*/ .site-description { float: none; width: auto; text-align: center; } .logo { /* change display value to inline-block to show logo */ display: none; float: none; padding: 10px; } .site-description h1, .site-description p { text-align: inherit; float: none; margin: 5px; line-height: 1.2em; overflow: hidden; text-overflow: ellipsis; } .site-description p, .search-header { display: none; } /* Navigation ----------------------------------------*/ .headerbar + .navbar { margin-top: -5px; } /* Search ----------------------------------------*/ .responsive-search { display: block !important; } /* .topiclist lists ----------------------------------------*/ li.header dt { text-align: center; text-transform: none; line-height: 1em; font-size: 1.2em; padding-bottom: 4px; } ul.topiclist li.header dt, ul.topiclist li.header dt .list-inner { margin-right: 0 !important; padding-right: 0; } ul.topiclist li.header dd { display: none !important; } ul.topiclist dt, ul.topiclist dt .list-inner, ul.topiclist.missing-column dt, ul.topiclist.missing-column dt .list-inner, ul.topiclist.two-long-columns dt, ul.topiclist.two-long-columns dt .list-inner, ul.topiclist.two-columns dt, ul.topiclist.two-columns dt .list-inner { margin-right: 0; } ul.topiclist dt .list-inner.with-mark { padding-right: 34px; } ul.topiclist dt .list-inner { min-height: 28px; } ul.topiclist li.header dt .list-inner { min-height: 0; } ul.topiclist dd { display: none; } ul.topiclist dd.mark { display: block; } /* Forums and topics lists ----------------------------------------*/ ul.topiclist.forums dt { margin-right: -250px; } ul.topiclist dd.mark { display: block; position: absolute; right: 5px; top: 0; margin: 0; width: auto; min-width: 0; text-align: left; } ul.topiclist.forums dd.topics dfn, ul.topiclist.topics dd.posts dfn { position: relative; left: 0; width: auto; display: inline; font-weight: normal; } li.row .responsive-show strong { font-weight: bold; color: inherit; } ul.topiclist li.row dt a.subforum { vertical-align: bottom; overflow: hidden; text-overflow: ellipsis; max-width: 100px; } /* Forums and topics lists ----------------------------------------*/ dd.cat-title { width: 50px; min-width: 20px; overflow: hidden; text-align: left; line-height: 2.2em; font-size: 1.1em; } dd.catdiv { min-width: 20px; overflow: hidden; text-align: center; line-height: 2.2em; font-size: 1.1em; } dd.topicdetails { width: 50px; overflow: hidden; margin-left: 2px; margin-right: 2px; text-align: left; line-height: 1.2em; font-size: 1.1em; } dd.forumdesc { margin-left: 2px; margin-right: 2px; text-align: left; line-height: 1.2em; font-size: 1.1em; } dd.nav { overflow: hidden; text-align: center; font-size: 1.1em; } dd.views { min-width: 100px; overflow: hidden; text-align: center; font-size: 1.1em; } dd.answers { min-width: 60px; overflow: hidden; text-align: center; line-height: 1.2em; font-size: 1.1em; } dd.forumlink { min-width: 60px; text-align: center; font-size: 1.1em; } dd.lastpost { width: 50px; min-width: 10px; text-align: left; font-size: 1.1em; } div.legend { text-align: center; vertical-align: middle; line-height: 1.2em; font-size: 1.1em; } /* Responsive breadcrumbs ----------------------------------------*/ .rtl .breadcrumbs .crumb { float: right; } /* Table styles ----------------------------------------*/ .rtl table.table1 thead th { padding: 0 3px 4px 0; } .rtl table.table1 thead th span { padding-left: 0; padding-right: 7px; } .rtl table.table1 tbody th { text-align: right; } /* Specific column styles */ .rtl table.table1 .name { text-align: right; } .rtl table.table1 .joined { text-align: right; } .rtl table.table1 .active { text-align: right; } .rtl table.table1 .info { text-align: right; } .rtl table.table1 thead .autocol { padding-left: 0; padding-right: 1em; } .rtl table.table1 span.rank-img { float: left; } .rtl table.info tbody th { text-align: left; } .rtl .forumbg table.table1 { margin: 0 -1px -1px -2px; } /* Misc layout styles ---------------------------------------- */ /* column[1-2] styles are containers for two column layouts */ .rtl .column1 { float: right; clear: right; } .rtl .column2 { float: left; clear: left; } /* General classes for placing floating blocks */ .rtl .left-box { float: right; text-align: right; } .rtl .right-box { float: left; text-align: left; } .rtl dl.details dt { float: right; clear: right; text-align: left; } .rtl dl.details dd { margin-right: 0; margin-left: 0; padding-right: 5px; padding-left: 0; float: right; } *:first-child+html dl.details dd { margin-right: 30%; float: none; } * html dl.details dd { margin-right: 30%; float: none; } /* Pagination ----------------------------------------*/ .pagination > ul { margin: 5px 0 0; } .row .pagination .ellipsis + li { display: none !important; } /* Responsive tables ----------------------------------------*/ table { border-collapse: collapse; border-spacing: 0; } table.responsive, table.responsive tbody, table.responsive tr, table.responsive td { display: block; } table.responsive thead, table.responsive th { display: none; } table.responsive.show-header thead, table.responsive.show-header th:first-child { display: block; width: auto !important; text-align: left !important; } table.responsive.show-header th:first-child span.rank-img { display: none; } table.responsive tr { margin: 2px 0; } table.responsive td { width: auto !important; text-align: left !important; padding: 4px; } table.responsive td.empty { display: none !important; } table.responsive td > dfn { display: inline-block !important; } table.responsive td > dfn:after { content: ':'; padding-right: 5px; } table.responsive span.rank-img { float: none; padding-right: 5px; } table.responsive.memberlist td:first-child input[type="checkbox"] { float: right; } /* Tabbed menu Based on: http://www.alistapart.com/articles/slidingdoors2/ ----------------------------------------*/ #tabs { line-height: normal; margin: 0 0 -6px 7px; min-width: 600px; } .rtl #tabs { margin: 0 7px -6px 0; } #tabs ul { margin:0; padding: 0; list-style: none; } #tabs li { display: inline; margin: 0; padding: 0; font-size: 0.85em; font-weight: bold; } #tabs a { float: left; background:url("images/bg_tabs1.gif") no-repeat 0% -34px; margin: 0 1px 0 0; padding: 0 0 0 7px; text-decoration: none; position: relative; } .rtl #tabs a { float: right; } #tabs a span { float: left; display: block; background: url("images/bg_tabs2.gif") no-repeat 100% -34px; padding: 7px 10px 4px 4px; color: #767676; white-space: nowrap; font-family: Arial, Helvetica, sans-serif; text-transform: uppercase; font-weight: bold; } .rtl #tabs a span { float: right; } /* Commented Backslash Hack hides rule from IE5-Mac \*/ #tabs a span, .rtl #tabs a span { float:none;} /* End hack */ #tabs a:hover span { color: #BC2A4D; } #tabs #activetab a { background-position: 0 0; border-bottom: 1px solid #DCDEE2; } #tabs #activetab a span { background-position: 100% 0; padding-bottom: 5px; color: #23649F; } #tabs a:hover { background-position: 0 -69px; } #tabs a:hover span { background-position: 100% -69px; } #tabs #activetab a:hover span { color: #115098; } /* Forms ----------------------------------------*/ fieldset dt, fieldset.fields1 dt, fieldset.fields2 dt { width: auto; float: none; } fieldset dd, fieldset.fields1 dd, fieldset.fields2 dd { margin-left: 0px; } textarea, dd textarea, .message-box textarea { width: 100%; -moz-box-sizing: border-box; box-sizing: border-box; } dl.pmlist dt { width: auto !important; margin-bottom: 5px; } dl.pmlist dd { display: inline-block; margin-left: 0 !important; } dl.pmlist dd:first-of-type { padding-left: 20px; } .smiley-box, .message-box { float: none; width: auto; } .smiley-box { margin-top: 5px; } .bbcode-status { display: none; } .colour-palette, .colour-palette tbody, .colour-palette tr { display: block; } .colour-palette td { display: inline-block; margin-right: 2px; } .horizontal-palette td:nth-child(2n), .vertical-palette tr:nth-child(2n) { display: none; } fieldset.quick-login label { display: block; margin-bottom: 5px; white-space: normal; } fieldset.quick-login label > span { display: inline-block; min-width: 100px; } fieldset.quick-login input.inputbox { width: 85%; max-width: 300px; margin-left: 20px; } fieldset.quick-login label[for="autologin"] { display: inline-block; text-align: right; min-width: 50%; } /* User profile ----------------------------------------*/ .column1, .column2, .left-box.profile-details { float: none; width: auto; } /* Polls ----------------------------------------*/ fieldset.polls dt { width: 90%; } fieldset.polls dd.resultbar { padding-left: 20px; } fieldset.polls dd.poll_option_percent { width: 20%; } fieldset.polls dd.resultbar, fieldset.polls dd.poll_option_percent { margin-top: 5px; } /* Post ----------------------------------------*/ .postbody { position: inherit; } .postprofile, .postbody, .search .postbody { display: block; width: auto; float: none; padding: 0; min-height: 0; } .post .postprofile { width: auto; border-width: 0 0 1px 0; padding-bottom: 5px; margin: 0; margin-bottom: 5px; min-height: 40px; overflow: hidden; } .postprofile dd { display: none; } .postprofile dt, .postprofile dd.profile-rank, .search .postprofile dd { display: block; margin: 0; } .postprofile .has-avatar .avatar-container { margin: 0; overflow: inherit; } .postprofile .avatar-container:after { clear: none; } .postprofile .avatar { margin-right: 5px; } .postprofile .avatar img { width: auto !important; height: auto !important; max-height: 32px; } .has-profile .postbody h3 { margin-left: 0 !important; margin-right: 0 !important; } .has-profile .post-buttons { right: 30px; top: 15px; } .online { background-size: 40px; } /* Misc stuff ----------------------------------------*/ h2 { margin-top: .5em; } p { margin-bottom: .5em; overflow: hidden; } p.rightside { margin-bottom: 0; } fieldset.display-options label { display: block; clear: both; margin-bottom: 5px; } dl.mini dd.pm-legend { float: left; min-width: 200px; } .topicreview { margin: 0 -5px; padding: 0 5px; } fieldset.display-actions { white-space: normal; } .phpbb_alert { width: auto; margin: 0 5px; } .attach-comment dfn { width: 100%; } } @media (min-width: 700px) { .postbody { width: 70%; } } @media (min-width: 850px) { .postbody { width: 76%; } } @media (max-width: 850px) { .postprofile { width: 28%; } } @media (min-width: 701px) and (max-width: 950px) { ul.topiclist dt { margin-right: -410px; } ul.topiclist dt .list-inner { margin-right: 410px; } dd.posts, dd.topics, dd.views { width: 80px; } } /* Show scrollbars for items with overflow on iOS devices ----------------------------------------*/ .postbody .content::-webkit-scrollbar, .topicreview::-webkit-scrollbar, .post_details::-webkit-scrollbar, .codebox code::-webkit-scrollbar, .attachbox dd::-webkit-scrollbar, .attach-image::-webkit-scrollbar, .dropdown-extended ul::-webkit-scrollbar { width: 8px; height: 8px; -webkit-appearance: none; background: rgba(0, 0, 0, .1); border-radius: 3px; } .postbody .content::-webkit-scrollbar-thumb, .topicreview::-webkit-scrollbar-thumb, .post_details::-webkit-scrollbar-thumb, .codebox code::-webkit-scrollbar-thumb, .attachbox dd::-webkit-scrollbar-thumb, .attach-image::-webkit-scrollbar-thumb, .dropdown-extended ul::-webkit-scrollbar-thumb { background: rgba(0, 0, 0, .3); border-radius: 3px; } #memberlist tr.inactive, #team tr.inactive { font-style: italic; } templates/SwiftBlue/admin0000755000000000000000000000000013765410140012660 5ustar templates/SwiftBlue/admin/SwiftBlue.css0000755000000000000000000000016011500513604015347 0ustar @CHARSET "UTF-8"; BODY { margin:5px; } TH, TD { font-size: 68.5%; } .gen { font-size: 1.1em; } templates/SwiftBlue/admin/admin.css0000755000000000000000000000154511500513604014543 0ustar fieldset { border: 0px; } div#admintabs { display:inline; } div#admintabs ul { margin: 0px; padding: 0px; font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold; color: #000; line-height: 30px; white-space: nowrap; } div#admintabs li { margin: 2px; padding: 2px; list-style-type: none; display: inline; border: 1px solid #777; background-color: #fff; } div#admintabs li a { text-decoration: none; padding: 2px 10px; color: #000; } div#admintabs li a:link { color: #000: } div#admintabs li a:visited { color: #000; } div#admintabs li a:hover { color: #777; } div#admintabs li.activetab { border: 1px solid #777; background-color: #ddd; } div#admintabs li.activetab a, div#tabs li.activetab a:link, div#tabs li.activetab a:visited, div#tabs li.activetab a:hover { color: #777; }templates/SwiftBlue/admin/index.htm0000755000000000000000000000026311500513604014556 0ustar
BluePink BluePink
XHost
Servere virtuale de la 20 eur / luna. Servere dedicate de la 100 eur / luna - servicii de administrare si monitorizare incluse. Colocare servere si echipamente de la 75 eur / luna. Pentru detalii accesati site-ul BluePink.
templates/SwiftBlue/admin/mainpage_header.html0000755000000000000000000000302511500513604016713 0ustar {META} {SITENAME} - {L_MX_ADMIN} {MX_ADDITIONAL_CSS} {MX_ICON_CSS}
logo MX-Publisher

{ADMIN_TITLE}

{L_LOGGED_IN_AS} {USERNAME}{L_LOGOUT} ] {L_ADMIN_INDEX}{L_PORTAL_INDEX}

{L_SKIP}

templates/SwiftBlue/ajax.js0000755000000000000000000003013713366416654013154 0ustar /* global phpbb */ (function($) { // Avoid conflicts with other libraries 'use strict'; // This callback will mark all forum icons read phpbb.addAjaxCallback('mark_forums_read', function(res) { var readTitle = res.NO_UNREAD_POSTS; var unreadTitle = res.UNREAD_POSTS; var iconsArray = { forum_unread: 'forum_read', forum_unread_subforum: 'forum_read_subforum', forum_unread_locked: 'forum_read_locked' }; $('li.row').find('dl[class*="forum_unread"]').each(function() { var $this = $(this); $.each(iconsArray, function(unreadClass, readClass) { if ($this.hasClass(unreadClass)) { $this.removeClass(unreadClass).addClass(readClass); } }); $this.children('dt[title="' + unreadTitle + '"]').attr('title', readTitle); }); // Mark subforums read $('a.subforum[class*="unread"]').removeClass('unread').addClass('read').children('.icon.icon-red').removeClass('icon-red').addClass('icon-blue'); // Mark topics read if we are watching a category and showing active topics if ($('#active_topics').length) { phpbb.ajaxCallbacks.mark_topics_read.call(this, res, false); } // Update mark forums read links $('[data-ajax="mark_forums_read"]').attr('href', res.U_MARK_FORUMS); phpbb.closeDarkenWrapper(3000); }); /** * This callback will mark all topic icons read * * @param {bool} [update_topic_links=true] Whether "Mark topics read" links * should be updated. Defaults to true. */ phpbb.addAjaxCallback('mark_topics_read', function(res, updateTopicLinks) { var readTitle = res.NO_UNREAD_POSTS; var unreadTitle = res.UNREAD_POSTS; var iconsArray = { global_unread: 'global_read', announce_unread: 'announce_read', sticky_unread: 'sticky_read', topic_unread: 'topic_read' }; var iconsState = ['', '_hot', '_hot_mine', '_locked', '_locked_mine', '_mine']; var unreadClassSelectors; var classMap = {}; var classNames = []; if (typeof updateTopicLinks === 'undefined') { updateTopicLinks = true; } $.each(iconsArray, function(unreadClass, readClass) { $.each(iconsState, function(key, value) { // Only topics can be hot if ((value === '_hot' || value === '_hot_mine') && unreadClass !== 'topic_unread') { return true; } classMap[unreadClass + value] = readClass + value; classNames.push(unreadClass + value); }); }); unreadClassSelectors = '.' + classNames.join(',.'); $('li.row').find(unreadClassSelectors).each(function() { var $this = $(this); $.each(classMap, function(unreadClass, readClass) { if ($this.hasClass(unreadClass)) { $this.removeClass(unreadClass).addClass(readClass); } }); $this.children('dt[title="' + unreadTitle + '"]').attr('title', readTitle); }); // Remove link to first unread post $('a.unread').has('.icon-red').remove(); // Update mark topics read links if (updateTopicLinks) { $('[data-ajax="mark_topics_read"]').attr('href', res.U_MARK_TOPICS); } phpbb.closeDarkenWrapper(3000); }); // This callback will mark all notifications read phpbb.addAjaxCallback('notification.mark_all_read', function(res) { if (typeof res.success !== 'undefined') { phpbb.markNotifications($('[data-notification-unread="true"]'), 0); phpbb.closeDarkenWrapper(3000); } }); // This callback will mark a notification read phpbb.addAjaxCallback('notification.mark_read', function(res) { if (typeof res.success !== 'undefined') { var unreadCount = Number($('#notification-button strong').html()) - 1; phpbb.markNotifications($(this).parent('[data-notification-unread="true"]'), unreadCount); } }); /** * Mark notification popup rows as read. * * @param {jQuery} $popup jQuery object(s) to mark read. * @param {int} unreadCount The new unread notifications count. */ phpbb.markNotifications = function($popup, unreadCount) { // Remove the unread status. $popup.removeClass('bg2'); $popup.find('a.mark_read').remove(); // Update the notification link to the real URL. $popup.each(function() { var link = $(this).find('a'); link.attr('href', link.attr('data-real-url')); }); // Update the unread count. $('strong', '#notification-button').html(unreadCount); // Remove the Mark all read link and hide notification count if there are no unread notifications. if (!unreadCount) { $('#mark_all_notifications').remove(); $('#notification-button > strong').addClass('hidden'); } // Update page title var $title = $('title'); var originalTitle = $title.text().replace(/(\((\d+)\))/, ''); $title.text((unreadCount ? '(' + unreadCount + ')' : '') + originalTitle); }; // This callback finds the post from the delete link, and removes it. phpbb.addAjaxCallback('post_delete', function() { var $this = $(this), postId; if ($this.attr('data-refresh') === undefined) { postId = $this[0].href.split('&p=')[1]; var post = $this.parents('#p' + postId).css('pointer-events', 'none'); if (post.hasClass('bg1') || post.hasClass('bg2')) { var posts1 = post.nextAll('.bg1'); post.nextAll('.bg2').removeClass('bg2').addClass('bg1'); posts1.removeClass('bg1').addClass('bg2'); } post.fadeOut(function() { $(this).remove(); }); } }); // This callback removes the approve / disapprove div or link. phpbb.addAjaxCallback('post_visibility', function(res) { var remove = (res.visible) ? $(this) : $(this).parents('.post'); $(remove).css('pointer-events', 'none').fadeOut(function() { $(this).remove(); }); if (res.visible) { // Remove the "Deleted by" message from the post on restoring. remove.parents('.post').find('.post_deleted_msg').css('pointer-events', 'none').fadeOut(function() { $(this).remove(); }); } }); // This removes the parent row of the link or form that fired the callback. phpbb.addAjaxCallback('row_delete', function() { $(this).parents('tr').remove(); }); // This handles friend / foe additions removals. phpbb.addAjaxCallback('zebra', function(res) { var zebra; if (res.success) { zebra = $('.zebra'); zebra.first().html(res.MESSAGE_TEXT); zebra.not(':first').html(' ').prev().html(' '); } }); /** * This callback updates the poll results after voting. */ phpbb.addAjaxCallback('vote_poll', function(res) { if (typeof res.success !== 'undefined') { var poll = $(this).closest('.topic_poll'); var panel = poll.find('.panel'); var resultsVisible = poll.find('dl:first-child .resultbar').is(':visible'); var mostVotes = 0; // Set min-height to prevent the page from jumping when the content changes var updatePanelHeight = function (height) { height = (typeof height === 'undefined') ? panel.find('.inner').outerHeight() : height; panel.css('min-height', height); }; updatePanelHeight(); // Remove the View results link if (!resultsVisible) { poll.find('.poll_view_results').hide(500); } if (!res.can_vote) { poll.find('.polls, .poll_max_votes, .poll_vote, .poll_option_select').fadeOut(500, function () { poll.find('.resultbar, .poll_option_percent, .poll_total_votes').show(); }); } else { // If the user can still vote, simply slide down the results poll.find('.resultbar, .poll_option_percent, .poll_total_votes').show(500); } // Get the votes count of the highest poll option poll.find('[data-poll-option-id]').each(function() { var option = $(this); var optionId = option.attr('data-poll-option-id'); mostVotes = (res.vote_counts[optionId] >= mostVotes) ? res.vote_counts[optionId] : mostVotes; }); // Update the total votes count poll.find('.poll_total_vote_cnt').html(res.total_votes); // Update each option poll.find('[data-poll-option-id]').each(function() { var $this = $(this); var optionId = $this.attr('data-poll-option-id'); var voted = (typeof res.user_votes[optionId] !== 'undefined'); var mostVoted = (res.vote_counts[optionId] === mostVotes); var percent = (!res.total_votes) ? 0 : Math.round((res.vote_counts[optionId] / res.total_votes) * 100); var percentRel = (mostVotes === 0) ? 0 : Math.round((res.vote_counts[optionId] / mostVotes) * 100); var altText; altText = $this.attr('data-alt-text'); if (voted) { $this.attr('title', $.trim(altText)); } else { $this.attr('title', ''); }; $this.toggleClass('voted', voted); $this.toggleClass('most-votes', mostVoted); // Update the bars var bar = $this.find('.resultbar div'); var barTimeLapse = (res.can_vote) ? 500 : 1500; var newBarClass = (percent === 100) ? 'pollbar5' : 'pollbar' + (Math.floor(percent / 20) + 1); setTimeout(function () { bar.animate({ width: percentRel + '%' }, 500) .removeClass('pollbar1 pollbar2 pollbar3 pollbar4 pollbar5') .addClass(newBarClass) .html(res.vote_counts[optionId]); var percentText = percent ? percent + '%' : res.NO_VOTES; $this.find('.poll_option_percent').html(percentText); }, barTimeLapse); }); if (!res.can_vote) { poll.find('.polls').delay(400).fadeIn(500); } // Display "Your vote has been cast." message. Disappears after 5 seconds. var confirmationDelay = (res.can_vote) ? 300 : 900; poll.find('.vote-submitted').delay(confirmationDelay).slideDown(200, function() { if (resultsVisible) { updatePanelHeight(); } $(this).delay(5000).fadeOut(500, function() { resizePanel(300); }); }); // Remove the gap resulting from removing options setTimeout(function() { resizePanel(500); }, 1500); var resizePanel = function (time) { var panelHeight = panel.height(); var innerHeight = panel.find('.inner').outerHeight(); if (panelHeight !== innerHeight) { panel.css({ minHeight: '', height: panelHeight }) .animate({ height: innerHeight }, time, function () { panel.css({ minHeight: innerHeight, height: '' }); }); } }; } }); /** * Show poll results when clicking View results link. */ $('.poll_view_results a').click(function(e) { // Do not follow the link e.preventDefault(); var $poll = $(this).parents('.topic_poll'); $poll.find('.resultbar, .poll_option_percent, .poll_total_votes').show(500); $poll.find('.poll_view_results').hide(500); }); $('[data-ajax]').each(function() { var $this = $(this); var ajax = $this.attr('data-ajax'); var filter = $this.attr('data-filter'); if (ajax !== 'false') { var fn = (ajax !== 'true') ? ajax : null; filter = (filter !== undefined) ? phpbb.getFunctionByName(filter) : null; phpbb.ajaxify({ selector: this, refresh: $this.attr('data-refresh') !== undefined, filter: filter, callback: fn }); } }); /** * This simply appends #preview to the action of the * QR action when you click the Full Editor & Preview button */ $('#qr_full_editor').click(function() { $('#qr_postform').attr('action', function(i, val) { return val + '#preview'; }); }); /** * Make the display post links to use JS */ $('.display_post').click(function(e) { // Do not follow the link e.preventDefault(); var postId = $(this).attr('data-post-id'); $('#post_content' + postId).show(); $('#profile' + postId).show(); $('#post_hidden' + postId).hide(); }); /** * Toggle the member search panel in memberlist.php. * * If user returns to search page after viewing results the search panel is automatically displayed. * In any case the link will toggle the display status of the search panel and link text will be * appropriately changed based on the status of the search panel. */ $('#member_search').click(function () { var $memberlistSearch = $('#memberlist_search'); $memberlistSearch.slideToggle('fast'); phpbb.ajaxCallbacks.alt_text.call(this); // Focus on the username textbox if it's available and displayed if ($memberlistSearch.is(':visible')) { $('#username').focus(); } return false; }); /** * Automatically resize textarea */ $(function() { var $textarea = $('textarea:not(#message-box textarea, .no-auto-resize)'); phpbb.resizeTextArea($textarea, { minHeight: 75, maxHeight: 250 }); phpbb.resizeTextArea($('textarea', '#message-box')); }); })(jQuery); // Avoid conflicts with other libraries templates/SwiftBlue/alternate.css0000755000000000000000000000376111500513576014354 0ustar /** * An alternate stylesheet. * * @package AutoIndex * @author Justin Hagstrom * @version 1.0.0 (February 03, 2005) * * @copyright Copyright (C) 2002-2005 Justin Hagstrom * @license http://www.gnu.org/licenses/gpl.html GNU General Public License (GPL) * * @link http://autoindex.sourceforge.net */ /* Body */ .autoindex_body, html { font-family: verdana, lucidia, sans-serif; font-size: 13px; background-color: #FCFCFC; } /* Images */ .autoindex_body img { border: none; } /* Tables */ .autoindex_table { width: 100%; border: none; border-spacing: 2px; } .light_row { background-color: #FEFEFE; font-size: 12px; } .dark_row { background-color: #EEEEEE; font-size: 12px; } .light_row:hover, .dark_row:hover { background-color: #FFF2BF; } .autoindex_td { border: 1px solid #FAFAFA; font-size: 12px; padding: 1px; text-align: left; white-space: nowrap; } .autoindex_td_right { border: 1px solid #FAFAFA; font-size: 12px; padding: 1px; text-align: right; white-space: nowrap; } .autoindex_td:hover, .autoindex_td_right:hover { font-size: 12px; padding: 1px; border: 1px solid #FFCC00; } .autoindex_th { background-color: #FFCC00; border: 1px solid #AA9339; font-size: 12px; padding: 2px; } /* Links */ .plain_link { color: #000000; text-decoration: none; } .autoindex_a:visited, .autoindex_a:active { color: #00008F; text-decoration: none; } .autoindex_a:link { color: #0000FF; text-decoration: none; } .autoindex_a:hover { color: #392266; text-decoration: none; } /* Buttons */ .button { color: #707070; background-color: #F2F6FC; font-family: arial, sans-serif; font-size: 11px; text-align: left; vertical-align: middle; font-weight: bold; cursor: pointer; border: 0px outset #CBCBCB; padding: 3px 10px 3px 10px; } /* Misc. */ .paragraph { background: #F2F6FC; color: #000020; font-size: 13px; } .autoindex_hr { color: #000020; background-color: #000020; border: none; width: 75%; height: 1px; } .autoindex_small { font-size: 10px; }templates/SwiftBlue/bbcode.html0000755000000000000000000001254011500513576013762 0ustar
  • {if:download_count} {end if:download_count} {if:description_file} {end if:description_file} templates/SwiftBlue/en0000755000000000000000000000000013765410425012200 5ustar templates/SwiftBlue/en/button_pm_new.gif0000755000000000000000000000405611102321250015612 0ustar GIF89aaw!ù,a§h˜˜°ÈÐèøÔèøÈàø ÀØ ¸Ð˜¸ÐÌäøØèø˜¸Èø˜¨Èà¨ÈذÐè°È¼ÜôØìø¸ØôÀÜôÀàô´Ôð°Ðìp Äàô´Ôìàààð üœ ÿÿÿð¨8€°Ð¬Ðä,€¬ˆ¸Ø0„°ôøøäääøøø¸ØðÐäøà°h¨ÀHHH¸Üôx°ÐÈÐÈèèè8ˆ°l¨ÌÐȨÐÐÐè°Xظx000Œ¼ØPPPÈÈÈ x¨ÈäøP˜ÀÀà€¸Ø$$$ìðô(x¨   ´Øð˜°Àxxx @@@è¨HÀÀ¨¨¸ˆˆˆð (H¸¨Ðèðððèðð888ÀÐÐ` È¸ÀÈ€˜P°ÈȰd¤È¤ÌäÐȸˆ¨¸¸Ðà€€€¬ÈØ,,,´´´ÀÀÀ(€¨üüü°°°€ˆ˜Èਨ¨°ØðLLL<<<à°X È䘘˜è¨8˜ÀàÈȸ ¨Ø¸ˆ¸¸°x¨Àp€ˆhhhPPX|°ÐX˜Àx Àhpx°ÈØÀÈÀи¼ÔäÌÜì0€°ÀÀ°Ø°p€¨Èˆ ¸ˆ °Ð¸€ÈÀ ¸ÈÐÀØðÐØØÀØh¨Èà¸x@ˆ¸(((@¸0ˆ° ÈàÈàð```ØØØppppx€ˆ˜X˜¸Ø¨`` ÀÌÜè`˜¸ä¼xˆ¨À¼Øì444ˆ°Ð`hp¼Ðà¼Ìظ¸¨X¸ÈØà¸ÈÈè 8 ÈèØ°`€ˆŒt¬Ì€¨tx|¨´¼LPPÿH€Áƒ*\Ȱ¡Ã‡– H‘"Ä‹3j¼(`bÅ‚c€xÐH‚I Rª\ɲ¥Ë—0c²$@“æ€(¶¸ˆqP˜Æxp²hËšH“*]Ê´©Ó¥7¤H €KZ4¸§¨„A(S>K¶ìÓ¨7§&àQ CY·Bò È‘²l¥@Ë·¯ß¿€ FKumÛ "ü0(ÀÃ@ƒ.œLYKŒ‡1LrXQ5¸³çÏhS¨-\àpâ´0’ÀJƒx˜íÆ0© ëÞÍ»·ïßÀ{?2\ÚmâˆX ´Úà“¤Î ¡íaC˜7±-ͽ»÷ïàËÿ_`Tî2PHKôHp剃„…p‰|Ä!a!P~Þ!þ!-”ŠH¸ˆ£ ÄBbBªÚl# >¬0æs¨\A‰#k¼AÃøo É›ø€¤j€@01 Ø€@L$•‡?( ¨B!0X%T!€J°CÔf€ô!`(\€,t!h`BXna…0ä! ù[`øð‡@ ¢ÿ‡øÃUPˆHbÉÖ–¾à‰¸Cs@ XÁ hᇱà @¸B–HÆ2šñŒè²Ã+>Æ6–ñuêC!Ÿ¸B^ˆ ­+aа‚%tW@¼îˆL¤"ÉÈF*r}r|" ,¬æ1˜Å×vÂhñ‰èB!×GÊRšò”¨L¥*OIIN¢¸$& &¶ ˜dWP„¤ð—À ¦0‡IÌb¦pŽP|å+-9ŸŠD‡0a+_‰ÌjZóšØÌ¦6‘©ÌIö¡Ž PBOÜNܦ:×ÉÎlv“}À8 N \h#øÌ§>b ÏqîóŸuH?;templates/SwiftBlue/en/button_pm_reply.gif0000755000000000000000000000320511102321346016155 0ustar GIF89aZw!ù,Z§f˜˜´Ì˜´Èœ¼ÐÔèøÐèø¬ÌèÀÞö¼ÜôÈâö¨Äà ÀØÌäø´Ôð0„°œ¸Ð¤ÄÜ ¼Ô¸Øô(|¨¬Ìä°Ðì lœ|¬Ì”°Èÿÿÿ¤À؈¸ØÆâö¬Èä´Øð,€¬Œ¨¼HHHDŒ´@@@˜Äàt¤èèè¨Èà,€°d˜°Ðè(|¬ÄàöÊäøÐæø   öööàààää䈠´ÀܬÀ$$$ììì` Èhštttx°Ð888°Ôì\\\˜˜˜ x¨€€€PPP€°ÐÔÔÔÎæødddzzzÄÄÄ”””ˆˆˆ444ÀÜô`¢È²²²VVVd”d¤Èl¨ÌôôôXœÀÒÒÒXœÄP˜À¸¸¸`lpüüüŒ¼Ü@Œ¸T˜¼ÐÐÐ222`T´ÜÜÜbbb¨¨¨ÚÚÚÊÊÊRRR000ˆ¤¸X`d0€¬PTXDHL”°Ädœ¼\œÀ„œ°Z^`Òèøht|¼¼¼°°°¬ÐèL”¼¤ÈäÈÈÈ(((œÈ䌌ŒÈàôLLLøøøŒ°È$|¨x„@`nÖèøhhh€”¤€¬Èœœœ¼Ôè¾Úîd’ˆ”œJJJ`”ÀÀÀˆ¬Ä|„Œ~~~¸ÈÔlll¼Øð”¼ØŒ¤¼ÀÜ𤤤€ˆŒxˆ”„„„xŒ˜<@D8ˆ´´Ðä 8@DDDD¸Ìܘ¨¸pppŒœ¬ ¸Ð\ ÄªÐ쬬¬„¸Ø,,,`hlÎâò”ÀÜp¤ÈØØØ0h„<Œ´Èäø°¼Æ¸Ôÿ8P˜4"Èì Ȱ¡Ã‡#Jœ8 V”ô€D±£Ç ’ˆ¡¡ä’hX…\É$€—0s*YR‰ˆN†`êÜɳ§ÏŸ@ƒöØÓÔ PîÄØ²e GB£JJ5ÀKS8ÄëH @g0ùã ”9´ ¨]˶­Û·pãÊ¥cÀÀ‹ vuhà•:§ÐYÛ¦'!_bÄøBEÉž^ÔL¹²å˘3g~ÁÙH ö"H`‚›&[DåD™=v$¡¢ †JðêÞÍïƒy|ï|Ð@ŠÎ U”Pb÷ƒ Mð61A´èÑ¥?èщ׈‘9OŠÿ1ƒ£ì""ì\zÄè‚÷ðãËðà=&ãЗ¯À8ü*Ì-WB|\PŸº\€G |a7Á>X°‚N.TˆJ'Ü"ˆ$ qÆ 'ða ©Ò(¦¨âŠô¥Ø< Ð⊧¥XŒ7Ö°b,LÁ::ø`„xPN$9ËfÌàäH 2à E¤!Á ¦å–\&ð}_’ö%˜<$9䀅 &$À\t‰äPÚ: ¡‘ €‚N)®²F)±Ý!á2ìÁ„7HPF*餤`Ây\0J¤)ÁÁ§ôáÀ¤`jµ8ÀPê€ A8ÿ¡{VÐg¸F “–T ÅK !‹~ìQÆY0!@4ëì³ÐÍ@ÍN-€ÑZKD´ÒR[Á¸}.€ë0 :áùà2Äv$ §Ü@ nd°Á,ðÀ °ÀBÀ^`KÁA`à°Ã $L0Äñp/œë¹¬KÀÇë¡xÐJ!mÜÆ@$!IB¬a ÔlóÍ830Â7³Á†Î-4pP³"B ‡Í;¯ëôÇD-@Ôè¤Ç F¢°!¨‘HnðAB%hÔaƒ §­öÚl·í¶ÛTÇ-ÀÜtÏ=ˆN®Øj®¼baC×4ÈŠ¢|Bu'®øâŒ7îxãD.ùÜbè¤C™DбÔ~‡  Óp¸ä¤—nú騧®ºé´Þú“ˆV¥BQDFQ¨@ÕïÀÿN”T*üñÈû$P@;templates/SwiftBlue/en/button_topic_locked.gif0000755000000000000000000000376011102321442016770 0ustar GIF89aaw!ù ,a§h˜˜°ÈÐèøÔèøÈàø¨ÈàØèø ÀØø˜ ¸ÐÌäø˜¸Ð˜¸È¼Üô°ÐèÀàô¸Øô´ÔðÀÜôø˜ð¨8°ÐìÄàô°Èظx¬Ðäè¨Hð ÀØèððð¸Øðä¼|ÿÿÿ¸¸¸¨ÀØèèèð ( ¸ÈÈȰ°ÔìÀÐØp ÀÀ¨°ÀÈh˜¨ÀÐ8ˆ°ØÐ¸à¸x`ÀÀ°øøø°ÈØ x¨Ðиh˜üüüÈÐÈ¸ÌØÈȸäääÌÜèè°Xذp¸ÐàÈÜì```ÈØè`ˆx°ÌHpÐäøx¤°°°àààÐØØÐȸôøø€„ˆ¨¸ÀÈäø˜°À¨¨¨¸Èب¸Èx°È@@@ÀÀÀÈÈÈÀÐÐ444ÈØàÜȘ°ÀÐÀØðX¸   TTT€ˆŒ€€€ØÀˆØØØ ÈäXXX°Èàà°X˜˜˜€ È¸¨¸0x˜ÈÀ d¤È` Ä000 PPPÐÐÐ@ˆ°0€¨Xˆ888¼Ðà˜ÀØ,,,˜ÄÜ8€ h ÀHHHP˜À` Àx Èàðˆˆˆh¨È ÈàTœÀ¨Àà¸Ðè ¨tx|X˜¸X€¸ÈÐè¨8„¸ØP¸¨´¼h$|¨@°$$$¸Øèp ¨À °ÈP°Pxd˜ÀÐà °ÀpppX€ÀÈÐH°h˜¸l¨ÌPxLLLØÈ˜(((ÀØà˜ ˆ˜à°hp¨È(€¨x Àx¨Èx¨Àx€ˆ¸Ø´Øôÿ¨€Áƒ*\Ȱ¡Ã‡*pB°bÁˆ3jÜøÐ¢Àƒ6Œ<0@²¤É“(Sª\ɲ¥É0˜¹ U6æ xpŽ—b J´¨Ñ£H“ΰ`äÙPJ$“jÝʵëRšN \€à€R  IIDS;c  ùJ·®Ý»xóꥋ¤éÓ±Dcð#¦Ÿ/< ";~vìL¹r]$}›†,øƒ„œ äJˆÓ!HÐùÃG³ëך™€è»¶k `ØÞÝ×QžŠ%+X s>°;& êK¶ˆÙÒA¸õëOa ¨€½»u@xÿ_ ìc‰G0þàA.„ è.8´…F–,9r8¹£dÈ“ ãY§wbžx^WÞyb]ÞI`Áh |°ÅB Sˆ±‡gäg,_8Á‰(¦Á Û¨Ãl§ƒ‹åQðHÄÈepÀA+DœxŒ ”€À *Ba{ %†MG=Р% "<¡ OXÒÁL`æ™hNÀb¤#oŽÉ(Éf ÄP^ c*)$?L pã’f¦h ¥”Œ€Ðu82„i 1 ¯XQˆ ‘P1¦“Š–XÛ9€gt0g¨"ÿÐ?Äž1r0ë ²v£ª”à@ „6QjŒ²¥”4;iƒcí‘…ÜFxÀ-` Ä‚!+î¸ð°]? ²¨kn äf@(¡)”;ï¼<È»n1ò îžG¡”#4ëìAé•ùÆ L¡ XÀԪȷ_x&ÁÆs|ÂvÈ[ÁÆJfð1oòRÐîhAè 'dGòÂÄÌ£ ðÀ‘6›ÀЕ©è‹@Ælbµ$dr‰BxfÁÕXgýq`A(„J²CŒ¬Q¨úŽÀ (©2;œ¼FyÌÐÞÝ@`ðÐDÿ´¨uô 8ÄKœò ³XñB>t° Þ·7“´çÆ¡ØýÀ íÇ@ è…>p9¡hÄ›sÎPáë|ÀÐ ÔÎBº$Û†+¨°ÂÆ¿@Kyä ã4¢¤ÌCZà "0/ ÍÀBôR²°õ¬°‚”ÏcÏü÷"¬PCõ²Ïž@í 4€Bhl4 ¼Bá¨è‚   ‚ýõïAPà Fšð„(L¡ ØÀB‚`( lð(šÀ )P v(=”"5(ß͆HÄ"ñˆHLbmçÂüû䩽¹ ;Ð(ŽÀÅ#¬Â .pAmGÆ2šñŒhL£ÉØ>'>†…ùH Œ 7^‘ TÐB LÁ‚*˜À hŸ IÈBòˆLd݈Fb ©8 O R‰>¨oa¬ ú…QH!‹t£(GIÊRšò”t$:‡©L†€„-˜8´?þѨ̥.wyJGÖâœp¥EÒà@ÈD¦1Ï‘f:³#yå3§IMŒx$ ;templates/SwiftBlue/en/button_topic_new.gif0000755000000000000000000000401511102321512016310 0ustar GIF89aaw!ù ,a§h˜˜°ÈÐèøÔèøÈàø¨ÈàØèø Àؘ¸Ð ¸ÐÌäøü˜˜¸È¼ÜôÀàô¸Øô´Ôð¬Ìè°Ðì°È°Ðèð¨8Äàô0€° ÀÜÀÜôˆ¸Øààà¬Ìäÿÿÿx €°Ð°Ôìø˜øøøx°Ðäääð ÀÀ¨¸Øð¨Àp ðððèèèôôô x¨l¨Ìظx000¨¸ÈȸÈÈÈÈÐÈð (ÐÐÐä¼|P˜À´ØðˆˆˆPPP@@@d¤È$|¨p HHH¨ÐèÀàÈȰxxxÐȸè¨Hh˜è°Xè¨8Ðäø$$$€€€€¸Ø°ÈØ Èä¼Ô䤤¤ à°XTTT¸Ø€˜` È888ˆ¨¸,,,ÀÐИ°ÀÈäø<<<´´´TœÀLLL   „¸ØÐȨà¸x¸ÌØtx€¸ÈР¨˜Àà` ÄÈØèüüü@¸˜˜˜hhhˆ ¸X¸H¸ˆ °(€¨¸¸°DDDp€ˆ°°°ÀÈÀ°Øð€ˆÀÀ°Ð¸€hpx°À@ˆ¸ÀÀÀÈØà ÈàÈàð˜ÀØà°hذ`ÀÀ¸°ÀÈX˜Àذph¨È`hp ÀàÀ¸˜¸¸¨x¨Èè 8ÐØØppp¨¨¨ˆ˜¸Ðà(((à¸h¨Ààx°ÌLPP€ˆŒ˜ÄÜx¤øüüx ÀÈÜì¬Ðè444€¨¼Ðàä¸lÌÜè ÈèØØØ```8ˆ°˜ÈàX À@€¨´Øôh˜¸¨´¼x¨ÀÄÄÄP°ÿ¸€Áƒ*\Ȱ¡Ã‡.0E°bÁˆ3jÜøÐ¢Àƒ.HT0@²¤É“(Sª\ɲ¥É0˜©à ”.z x°—b J´¨Ñ£H“Π@Ä䉄TJW$“jÝʵëRšN \xà` ’Hù†É£p-ùJ·®Ý»xóꥻ¤éÓ±@ðaðãŸ/¤ ãA×\ÐìL¹rÝ%}›†,XG„œI€ª‡‡ÓXÄØÂJ³ë×°cËnši¶m8^y*–¬à!&´AXÁî2¨=pØÂ#FÞУKŸN½êØŸ2¸.}¬oÀ+Tÿ°‚P]‰T Aœ4¤TIs!»}ûÛïOÇÍû‚ÿh  LPPRlœ41Â&ApQÄ #ŒPÄ( ˆAÂ* X¨€ˆ:`@ÈB`€€.>`ÁvÔð€3ŠÄÔ`AG0„Z`€>2 cF ^D¹`S»C ŽÀ‚Aì0BkTà€daÐ?ä‡ðA›XhÐæ,$ä„¢ÁŒ ÔhÆv&ШÛ‰(‡h°™Š`CŸèÂPF™BÑ]°F,-ð ‡´ j 1xQ 9`&!8`Ðxªÿà€Èš/ÈbPvàØvÍx†„2PC±Q8ðè°ÀÎlGÀÐŤFyÀµ˜Šõ_4¬° EÄE,¬PÈ Áº¸¹nš`¡l€ mþÐæ+ën×/3¬+ÀÎÚ°î' À¿ÎZ€‚gÁh鵨ä]€2±‚dpàí ;”ptÁÉ´‹Áɰ™@l°-ÅÑ2. ¼ÝÉ3AÛõAÄvD0# ü|4!„­•fpmX#`ª=ðÁBs0ÑÃ7°À=$ÐÁlOP†½l·\Æ*C<³}+®„ÿàCÛÛÁÐG J.¨ °p ‰ d¥¥ lå ÈŸ}ýóG þàüžp‚FôïO˜ß  {ósD²‡¹t¯  B p2B{¶0)¬o {hÀúǺð…0d¡%à h¯‚ €sILª8ꂬBz˜BšÀ„+€bPŒ¢§HÅ*R,˜`„¡˜¹êP‡u( ÏRQ-«% ƒH ´@‡+L w2GÇ:ÚñŽxÌ£óè½|ñ‹(Z.âƒË] ~T#ï  x¤$'IÉJVƒ ÀX˜ !À!"u˜F¤À À *WÉÊVºò•°Œ¥*3 H Ø2·8 O bElÏ‚ˆôc-iIÌbó˜ÈLf-m™‚ZLe—nzÄ%¼¨ÌjZóšÊ´%N± œuÒ" §8ÇÙT„œèL'F<;templates/SwiftBlue/en/button_topic_reply.gif0000755000000000000000000000412011102321562016654 0ustar GIF89aaw!ù,a§h˜˜°ÈÐèøÔèøÈàø¨ÈàØèø˜¸Ðø˜Ìäø ¸Ð Àؘ¸È°Ðè¼ÜôÀàô¸Øô´Ôðààà°À¬ÐäÀÜôð ÄàôPPPäää0€°ÿÿÿøøøð¨8H¸HHHø˜¨Àx ð (ˆˆˆ€°ÐÐÐÐèèè000 Èä ¸¸¸ôøøÀÐаÔìðððxxxÀÀ¨p ¨À؈ °¨Ð舸ؘ˜˜ÈȸÈÈÈh˜ÐȸÀÔè x¨$$$X˜Àè°XÀÀ°@@@   TœÀ(((888d˜˜Èàx°Ðh˜ÀØÈȰ€¸Ø˜ÀØÈÐÈ,,,d¤È¸Ðàp Ø¸xLLL°ÈØpppè¨8ˆ ¸ØÀˆè¨H8ˆ°ÀÀÀüüüÈÀ°l¨Ìˆ¨¸€ Ðäøpxx$|¨è 8°È¨¸„¸Ø@¸(€¨ØÀ˜€€€¨¨¨` Ä˜°ÀXXX°°°à°X ¨` ÈØØØ```ÈØèX Àà¸xhhh¸ØðP˜À˜Àุ¨€˜°@HHä¼|x°ÌÈäø€¨Èب`Ìà쀘tx|X¸€ˆŒ@ˆ¸ ÀàÀÈÀذpÈÀ t¬Ì´Øô˜¨¸ Èàȸˆ˜¨h¨È¸¸°<<<Шhи€à°hаp°¸Àxˆ¼Ì܈˜PXX¸Ø°¸¨x À€ˆ˜hpx@ˆ°À°€¨ÈèÐäô¨´¼P°Èàôx¤p€ˆ˜ÄÜ`hpÀÐàh˜¸ÌÜèÿˆ€Áƒ*\Ȱ¡Ã‡"è@°bÁˆ3jÜøÐ¢Àƒ>”80@²¤É“(Sª\ɲ¥É0˜©à 1>‚!x0Ž€’ŠVÆJ´¨Ñ£H“*)@9ÈsI-“¹~¬Èà–¥`ÊË”æS <¸±À@ƒJN2bÁáK‰ RH•ÝË·¯ß¿€ó-ãjÚ"L1øñÌO C8Hæ€"E”[‚3kÞÜ· a§g'þ#!çE%D™ÌaB” )z€žM»¶mÛnë¾]¨èCPѪM,á…ƒ8”}u¤ƒ`À´ÐAdŽYÁ³kßÎ]û”*ÝÃwÿO@{ÚáŠ;pp ¡‚²¥Þt€bEŒ:ăøÿÝà€ä¡…ÁyŒ&ÁzT‰{³¥ A~ €%tÁQPÁ‡¨°Áð 1#¬ñ¡ TQÅ*@04B…]\{pq nì¡£At‘@<|H}xàF‚AxÂTPÀ–:e‡-d´`f )ÜÅÈ´É„AU¬€ |`œNX°‰{Ž`Á$aä‘× \pÁ’ƒ’¢ ¸`y¸‘ ¸@Æe¹e4 ”Ý:Àƒ1¤pÄ(À ÅY¨ÿ"b¼9çgpG%ñ€<°¢b8abÑJh¤@ahä=°¬  ÚÇÑöB¤\$P‡§[2 ®¨hY D1©'” Á ?LHA7°x/ ºæ{ƽNAÀr¯À÷æ€ Zh _p/( Xy÷‘ˆ ¡%¨âŽ{ÐyCÐ ~ü0D ' € h‚¼ ùÎ)Áž|¨` ð£P2…"A7KÐÄÂ7kš@MX1 O'@…T,y7G’h¢Ó îh# ¬ ÁÛoÃh€‡(Hq@ë9ÿ°†A°aÐÌÀ lì®(„Š'á€Al0á@ ÷hVlJæ ×A^×7¤‰„{6Ú „Fhr'L`ûyÀzŸ{W°ž ‡+¾ë]’Óáq¬§„á}°Ò‹; DZôɶ› !}¢Û^ Ézä5XÁ'ä‰b6h þU’^r\‘Á QøÇí³ÓAH | | 0Á§>õ„ pKO0Áh 2`Á!(Á-É€z  dð©P\*dé;@„¨ 8¨Á lg—ú€à ?`æÀ¿Om8 wÈÃPÔã! ÿ©V oêk@–ˆ„lÂ8X„¤ÚÙŽ1B̰ , d&hÃBFÆ2šñŒh<#'Ј4¢ hðD•¸Ä%6‚1ðƒ °5ÐÂ+HAî7 d`"8ëÉÈF:ò‘Œ$$×GÇ: ³pËE¦°%,@"C È`üà %0DЀõ¹ò•°Œ¥,gIËYŽÐ’ €ó‘%¢â:@.E°…-Ô`‹°!2!‚Œð™ÐŒ¦4§IÍjZ󙸬#¶©K\´…'Í{úÔwI ¨Á˜Ç¬A3³ÉÎvºóðŒg.¹IVPœ,"’¨-M¨a cX§<JЂZ’›©ˆó4iˆ á¡HàˆD'ŠT„¢ÍèF<;templates/SwiftBlue/en/icon_contact_aim.gif0000755000000000000000000000274711102321704016234 0ustar GIF89aHw!ù,H§f˜˜´ÌÐèøÔèø˜´ÈÌäøœ¼Ð¼ÜôÈäøÀàô ÀجÌè´Ôð¨Äàœ¸Ð¤ÄÜ”°È ¼ÔÀÜô¸Øô¬Àæææ¬ÌäÄàô°Ðì°Ôìt¤´ØðŒ¨¼”°Ä¤ÀØÈàø¬È䈸Ød¤È lœ€´Ô0„°°ÐèÐäø¨Èàhš` È,€¬T˜¼|¬Ì¸Ôp¬Ìˆ ´ €¬ÈDŒ´|°ÔøøP˜À<„° x¤ØØØl¨Ì¤ÌèT´”ÀܾÚîÖèø¬Ä(|¨<ˆ´Èàô@$ÌÜìˆXŒxT¨°¬üÜÈÜì¨ÐìÌÜähLd˜HhtäÀPôìܼDè´xˆ˜ ˜ˆÄ¤@`Pò´¤ÈäôܬÐè„l|\ÀØìüüüàxTÐÄœ¼Øð¤ÀÔ¬Èà°|üü´Ô쌼Ü4 HX|´ÌäXdlˆ˜ °ÀÄàÈlTH,€°üèØ¸,ôäŒl8 ŒTˆdXHĸ˜ÀÜ` Ä\ Ä€´Ølp|øÔ¼ÜðH¼L”¼’’ŒXœÄÖæðhL648°ÈÜpptôðˆ„~ˆ¬Ä”¼ØP”¸$@T@ Äà äÌ $èè\Šüü8àÐ<(|¬ŒŒàÔ¤€HüøèÄ8($l€˜b”D,@2@Œ´þÚ”~@þþ,`’Fhxøø6¼˜ ¸˜DTdþÔDX@¨ÀÖÖÖdœ¼˜¸Ì’Šxfj€FNr’~f0€¬@HTŒ°ÈjTX4Œ¤¸X˜¸\œÀh|”ÿ8Ђ… *\Ȱ¡Ã‡”LX/ 3jÜѰa¹¸ÌÂȱ¤É†RªœB啬c°¤¨œI³¦Í›8s x3–«VUVuJ¥³¨Ñ£4PÁ#!B)rÔÉ&IhÝʵ«×¯`½kÀ@‚&3jܸ€GƒöôY4¥‘6hœùȲ¥Ë—0cÆ$èRQ™DebÄÈÐ$”4d J´¥@.¾81à§“£@z2HíÑ#G ;â0Àµ«×¯`Ê-@öÀ~LØÉ€Çtõ0%F]SsäÐ5Ì‹a€È L¸°áÃÒ˜EpC­B°tB–F¯Mˆ±`თ¯'²#dHÙÓf´tp€Öf'PpZ6… §I°N E‚ +ÀXÂÒlš…¢léÄÆ Avã€ÄÆ/.ˆÐjGëÀÁv´®hÿ@{È£ö1(Юûo+ÁaÑ £ø;/"±°T£†¨,jœÀuœ  `$ à‚ tÇ ‚’u‚‚ݰ`™˜Ð‚„àÀVà‰póá°À,ÝpC-ql1‰:à&—QÉGÊ2TðØ9@AwÝ1¡€d!t qLð%<ÂäcwŒR&TA߉*`€K¿! )/°€Ë€ÔÍ2,·¼A€ < çœrºx‚ Ç-  ¬ÒÈÙ-´@Ar¶à†U Ä]F`i,=ö ÅA¨QÊ­0óJdX0 ´êj«+¬ÿðj«&°À C|ò…¶ò6„ & !é&¬ðA*\`é0 ,UPÁ8pJ@ PñÆÅÔÑLE” A ”kn¹3ÀqÁºë6€   \¯ôš›Ë `Á¯½DØ"†Æ 0´ɧ*D (!±á "”0wܱ„,2<@ÀÀ)Á€&/£rÇ%?Á2°,2ÉŒ0Â,1"ÉD°ÁKœ„ª!Â7íôÓPG-õÓ:`µXýKwPÚ€ÐÏmA "$A´”`AÖV·íöÛpÇ-7X×m7Tx— ²9¶Á#\½†2¬$! (¬a÷âŒ7îøãD¹¦PáÖQE™áŠEuîùK4}.úèBqdúé¨';templates/SwiftBlue/en/icon_contact_icq.gif0000755000000000000000000000312111102322046016225 0ustar GIF89aHw!ù,H§f™™µÌ—³ÉÓèùÑçøºÐÿÍåø´ÕïÁßö»Ûõ¬ÌæÈâ÷¡¿Ö§ÅÞ–²Èœ¹ÐÞºÛõ˜´Ë´ÖðÆá÷s˜´Ê¤ÂÚªÉâ ¾Õ•±Ç” ¬Ëåe˜š·ÎÄà÷²Óí³ÔîºÑ¢¿×¸ÚõK”¼ÿ½¦ÅÝÎåø›¸ÏÁÞö lq Ñçù¥ÃÛŸ½Ô)}ªšÅàŸ¼ÓŽ¨½ÏæøËäøÀÞö§Æß mŸV™¿ª3DÊã÷Çâ÷°Ñê¢ÀØ¥ÄܼÜöf¥È«Ëä±Ñë¯Ïé·Øóÿÿ8ˆ´’­Âƒ®ËÊãøe˜²Òì<‡°ž»ÒZÄ(|¨¨Çà·Ùô(|§ mžÐçøÌåø¿Þö„’¸ÉÃà÷¹ÛõÆâ÷c•Œ¦»®Î舡¶•°Æ¾Ýö†ž²½Üö­Íç$|ªÈ䜹ό¹Ør¡ªÊãv¬Î¿Ú¯Ôï.ƒ°š¶Í¡Æá*¬µ×ð‘Áß] ÇlªÍ¹Úõx±Ó©Ðê`¢ÇÅá÷¹Öìd¤ÈssF’»´Òë¬ÇÛÞÞ¶×òÁÚís£‡¹Ùu¤³Ó툀¶Ø,®}³Ô0„°i¨ÍÇä1…°WœÂ%}ª½ÝöÀÙí²ÉÜ”¯Æ„„§Æà¤Ëçr¢¿ÝöÌäøÀÝò½Ús­Î¦Í怵ÔÇßñ¼Ò䗲ɾÛð^›À©¿>‰³S•»`¢È’¹Õx¦ˆ³Ñµ×ñÊäøÏåöh¡Ä}­ÍÐæøŠ¤¸¨¼v¤¢À×™¶Ì ¾ÔÒçùd¿^Á—½ØŠ£¸ª¿—¹ÒoªË—³Èª¿ËáñÉã÷a£ÉŠ£·†ž±«ÉãªÐì´Îi›F´†Ÿ³2‚¬ÔéùÒèù“®Â›·Î£Éå]žÃv¥Â„±‡ ´œ¹Î¾Û͙µÊ‡ ³…±¯Ðé¢Ë剢¶i›m©Ë©¾°Êhš‘¬Áb“T‘µRP“´S‘µh›a’•û•ÖéùÕéù–²ÇT—¸Š­Å“®ÃÿH° Áƒ*\Ȱà‡ #Jœ¸P€{, €H±£ÇBŠô€À"‚“Bˆ\ɲ¥Ë—0a”ç2^I''¨§2¦ÏŸ@Yø ºpøîiô€çM+ HJµªÕ«X¥b›a@G‚ÌÄŒ€­Ù4²@¬À5œ:—ZdQrÙ-xóêÝË·/ß-ºtèpÁÅ–ƒ `xhb€"Ú(Xm™1ÃéÓ¹XP•*çÏ =ß@õùÆ‘#7@Ÿ2u¤)Ð\FíØäðˆ¢Œ„YbÚž]¸ÐÔ"&ž4Zä´Éóçкä<…ÖS8Ÿ &G>Î9ÿB^Ì…`t1B‹IÌý ” ‹Q)“BÄyá…ˆ ²À&x` ”,ð‡m¸‡€´@êÁ ÂÀCh¨Á€¼‘0D €0ß2 *Ĩœe:ÂÀ8æx#v0`H:V@8F2$HR X(bA I(±\ÑÃ| xˆÆ @aQS˜”™<¢À™h¦©@’(ÐDj®ÉHš`É™%”@‚I !%•=´P„̧{(H±‚˜L—EHðI”Vji?äi(•⑇rðFoàñ—‚€DUB0('<ÿÀó¡°D-%€€Ã „AI9ëÊ*D@`ì±ÈB‹ ÈÃ+´äbtÐ1 ¸ØC ­Û·EР¬à@… èR1ß{'Bã ¯(i´ /Ê8ñ 0ä«ï¾CM¾OX#ƒ S<‘ï1Sô€VÈ ¾³ÖP& Á "Ü!‚<À6J4Gh£Q5i¤ñŒ3Ù$38Ä,óÌ4×lsÌ݈c±<¿€ñTPAT0;h©Å @@à n¬CN9Þ|ƒŽdœ1ÀÖ\wíõ×`‡ÍµÐD@@hGPôð´ƒVú¸ÂïŒÑSP˜gAšwîùO;templates/SwiftBlue/en/icon_contact_jabber.gif0000755000000000000000000000316511102322120016677 0ustar GIF89aHw!ù,H§f™–²ÈœºÐš¶ÌÒèøúx[øY8ÀÞö¬ÌæÒæø´ÖðÈâöý’wP’¸ÎæøœÆàû¦’¼Üö ¾Öž˜˜¦ÆÞT–¼ lžþ¹§2„°`¢Èÿåܘ´Ì¦ÄÜ ¼ÔàààÆâö x¦˜´Ê°Ðêt¤‚²Òj¦È²ÔìÊäøÝŒ†þǹ¸ÚôÜ¥¢ªÈâ,€®d¤Èèèè’ÀÞhš lžx¨Æ&|ª¶Øò^ŒX„>вºÚô¢¾Ö¾¼V˜¾š¸Î–ÄàBޏ\ Æd•¤ÂÚ¶Öì0„°–¸Ò”°Æ´ÔÐ*~¬f˜¨ÆàZœÄt¤¾Úð†¸ØÌËËf¤È¤ÌæÄÞòšÆà|²Ô²´¸ªÊ∢¶õÒËr¢ÐæøZˆv¤ÂœÈälªÌÄàöFŒ´h¨Ìž¼ÒŒ´Î4‚®b’®Ôî|¬Ì(|ª¬Ê䢾ԲÎâÂÚîÀÔä¤ÊæèŒ|²Òìr¢®Òê̪®ÀÜò¨Ðê˜Ä䌾ÞD’ºÐ˜˜œÄâÖ²´ºÖìÌâò¢Æâ„¸Ø¦¾Ò¾Þö˜ÄàZžÆ²ÈÜnªÊªÎæ¼Úô¶ÒìÀØìКœÌ–˜ªÐìÊÞî¾ÚîÆÞðÌäø>Œ¶j¤ÈÀÞtªÌ”ÂÞJ”¼¸ÎÞR´’¬Â’®Ä^œÀž ¤Ú£¡Š¬ÄT´óóóin‹\^‚𬖾Üd–l¨Êv¬Î¶ÖðŽªÀ–¼Ø´¸¼p¤ÆÊ”–МžV’¶¬ÆÜL޲Ф¸dœ¾Œ¼Ú¤ÌèÂÞò¶Öî"|ª¬Èà\žÂt¢Z˜ºP’¶Û¤¡(|¨Dвœ¸ÎŒ°Ên¢Â®Î茦ºÿãC)R°ˆòÆÀ‡#JœH±"Å‚1lØ %°†CŠYñ‹SŠŠðéÉ—0+èÀ€8U`À â€%‚ J´¨Ñ£H‹>:*ÂÎ40pà©SI³jÝjT ¨ pu*Õª)(À¶­Û·pãÊm«@—’P€ƒÀ‘=´ö@ƒ²΢}ó§n]"+€€H2„Ë—©<Æ H]*œ/ãzP…ÐK1*I°BÃÐ'\TMLmÕL‘è~ ÀîAOì@"C5ìð¾`üÂ[¤‘7>ñ"EHÐccÁ”¡»ûÿHlVñC‹¨gðÀzL5H¼X`>:¬°Ï°¾Æ$?ðÃz ì€H C!ð1ÂC¡ ¡q Umã "‹tˆ€k.p\°@‡"ð|ñaÜ Æ@ v8AèÐ3’@CÂmX(Uyu°±K.«­«·0ÆjD邆S uäQÔ +‚%-0ÁÄP&¢#PA5U#x°Æ ô¹@ôéÄ.¸p}ÐDŸV8ÄŸ.ôƒ¡ @ Ä r@D ”ÌC 1ÄP«é°‚*°<åT¯ÿàA C†`B=Ì‘@*˜PB &ôJdC& „¸";d°¦”@ Å&°X@ª+ˆ1Á¶C­`ƒ HŒÐÂX,D•Â*GxÐAä°…3˜Q!°Ënõ †˜Qm¼kA3Ô›9ðËoàÀx ^ @ÆP œ0‚1 T@)|LÁ1G±íeøŒFLà 'O@ƒF8`³ÍÅl;ó͵´\ÆÍ7ÓàÁ/„³ÄâÃCÁ1BX01ÄÇ<ˆLËà  õÖ\wíõ×`wÄÑÀ"ˆÀÄ ÅK-ºƒ'TMÁYpRöÞ|÷Rí÷߀û}vÚn¸Úš%˜ °ÒÁˆÐJÝW”’Å&†g®ùæœwî¹ç „˜WE q¨ãpƒ\µîzRK µÄ7tÑÅ gõúî¯;templates/SwiftBlue/en/icon_contact_msnm.gif0000755000000000000000000000304411102322174016431 0ustar GIF89aHw!ù,H§h˜˜°È˜¸ÐÐèøÔèø ¸ÐÌäø ÀØÈàø¨Èà¼Üô´Ôì¨ÐèÀàô0„°€°Ð˜¸È(€¨`ÀÜô°Ðè¸Øð` Èˆ¸Øˆ ¸¸Øôh¨Èp Äàô Èàˆ °t¤@ˆ°` À€˜°h˜Œ¼Ø¨ÈèÐäøX Àx¨Èx°Ð x¨P˜¸¨¸p¬Ì€°ÈX˜Àh˜d˜0€°˜ÀàH¸P˜À°Øð8ˆ°¸Ð8x¸¸ØèP¸L”¼0hÀØèœÄàX˜¨Èäø Èè¨À(€°ˆ¨¸ÈàôÀØð¨ÐìhÈÐø¸°Ð ` ˜Pp P`¨ÀàÀèØPذèèèøÈx°°@ظXÈÀàðx°¸Tx@ ¤ˆÌÐÄ€ °Œ”ÌìŒÀ”ˆ  ¸àˆHˆXXà °ø¨ÈàèˆØ¨p€p€ p¨°˜àØØèÀ`ب ÀÈÈøÐ(x¨ Xp p ˆè¸pàÀ(X€ð° h¨¨xÐPÐp Xˆh@pX8`X°ÈØÀèȸøÀ8p°˜°°(p˜ øpØØ@`x°À(ÀøPÈøàP¨høˆ8pX|t|´¸€ÌÌhä ÐÈ$”ÌdÜÔ`€˜H¨@px˜¸Ø(Hhh ÀHˆ°0ШÈ鿏۬ÈP À8ˆH0€¨Xˆˆ<„°È8ˆ€`ˆ¸Øˆ°ÈHh˜°À(`€ÌÔ˜ HhØüä <<@ˆ 8 pD˜$PD¼l¨È@„¼Tˆ¼Øì¤¼ÐÈÜì¼ÐÜÌäôpü=!5AU h¸‰Ú_ÃnÙÂ%¬×©ˆK}ÀâHí‘©‘opê†@¯^ &BJ=ÁúÀ‘|úøiñçÇ»¸s'`,7å 0€ Âv1n°»9 Œ*ª&ÁXâ4ƒ T#¦ŠEJ1cЄÿáEÁùóèààÁ88PÑØ‚ÌG&퀯ƒç <@0†×UÐ@jáÖAfœAÆL4áÄ]ä¥á†y=pÁ 6,°Á .pƒ xC^”ð7ðµd| ¡.€v&(àcH ˆWtÌÁÆxÄQ‡D0àä“P΀Â0°Â(Ìðd*ØÀA• èØRÀ€p€€1x0œ>"€@HZ°Æ!„HAâƒ!‚(`B„Jh0¸ {0Ñ@8  ×ÄÀ¥ÃÁ°G!(@ r–:gFh€`J ò†jÿ¡ƒ:Øq p檀,(ÀX¨,H 'ÔŒ! *>Ö€‘˜ªC¦Ì™‚Øf‚€ò‰Ž0BI"¢x‚É&Š42€©¦Ö )H@ª5È)‚™Jð‚œú–:ƒ¼Ðo'¤` G($œ°! ¡à#‹ 2J)™¸’Ê,µÐ‚ +­ íÇ ‡,òÈ +œp(£<À)!‰Ð#´Á4`³Í!€É<÷ìóÏ>§D2)å$‚&0Ñ‚D5Í´PôÕXg­õÖ\g½ ZÀBF2È0ÁÙh§]¶Ml· 倯Ût×=’9X¤÷Þ|;templates/SwiftBlue/en/icon_contact_pm.gif0000755000000000000000000000310311102322260016063 0ustar GIF89aHw!ù,H§h˜Ðèø˜°È˜¸ÐÀàø°ÐèÈàø¨Èà ÀØ ¸Ð¸Øø¸Øðˆ °`˜¨À(€¨0ˆ°øp ÿÈX` Èˆ ¸Èàð€°Èÿ ÿ¨8ÿ°8ÿÿÿ€˜°¨Èè˜Ààÿ¨0èèèÿ€¸¨ ÿ(ÀØðH¸ÿ¸0ˆ¨¸¸€¸Øÿ (¸Ðàx¨(€°¸ÈиÈ`x¸è°Ø°ÈP˜À¨Ðèp x˜@¸°ˆ€¨Øˆ¸Øhpxÿ¨ ¸¸¸¨ÀØXp€¨h¨ÐP¸¨Ð0°Ø0888¸Øh8X`(x ¨¸P˜¸ÿ`@¸à È˜À°°˜xPPˆÀàÀxxH`ÈX xˆp¨ÈÀ  €xpÀØèÈxà`@Àèÿÿ€ ˆ° (€ `ÈèP ¸°€˜ÿà ˆ¸˜Èh°È€˜¨ Èèp¨`ˆÈø`xx ¨Èp¨Ð`Èð`xˆhh€¨¸`Ðø`°ÈxP(¸ÈØ Èàxhhh0¨È(°Ø0ˆ  Xp(ˆ˜(¸à`ˆp x˜ Àxx h˜hx   ˜ÈàXxpˆ x¨(pxp˜hˆ¨¸È@hp8x€ˆ˜¨ˆ°È°ÈØ0ÐøH€ˆ8@@x 0ÀèPØøHÀàPˆ¨PPXPÈ𨨨PxˆXxˆX( ØðX˜°¨x8H8(€ x°Ð¸ØØ˜ÀؘÀÈx°À˜ È0˜8x(˜€h ¸È°Èà¸@pˆ¸H˜°°ØðpÀØÀx ¸Øè¸¸ÈÀHÿÀ…?Z@B† 0äP¸°¢Å‹3.ôa„Ç)®\,á#Ä™/¾`AQ£Ë—È ó‰GŸRaŒÈÜ  †3DdèÁÅÏ£H“*]*“ Ï^©ÂÕD‚7< e0a↲ aJ¶,Sa!af’„\MdaA€] êÕaE]»€ LXðà ԠÐT&»šŠ©Ay„º€]ŒÐÀ¹s¿…C‹6Œ8ñ‚Œw’°{éVU °­ÛrÀîa=2|Ø! èÐx²H!à‘ÌÕvqðp¸ybÓ tà Ø‚_]¬t±•ƒíæ¹B¨ÿAÂ$š«o!Âalð sÎ{™Ì<7½€ÿ<©§Ë+¼”QF-wì2Ì~™Øƒ\8òƒ$ìgaí=GÐlj ÁrûÝÿM·“s ("T4 ‡œÆÇ : àCQP"5ž&ä DÀ”`C L€t° °0…у"\"ÀÓs €ÑI"l°J Nb‚x1eæAˆ¬Ýx2Ђ -ôIC ìÀ’Ð@_ ƒ¢¸e—$À—,ð‹ x8AË/!ÊÄÊ(`l`Acñ+@*ª*¨j@ ¤ÿ@Á!8à`@¬0Ê¥£¼>ºS T"C!¦2K0oÄP Àƒ(ÄBHGñÄ èª+«Ú^À¾^ॸüЫè¦Ë“Ñ:È`I$AaÆ$ P4‚B :¤Æ (ÐëÁ%”pp@n 8ê0¯é`ñÅðÄÆÔá *ƒ`r(k4pÂ\‘JUÀ$@ÀÑÀ§kóÍ8ߌñÎôÜ33ðDA® °D $tô|BÒD-u °óÕXgM€Ï\w=DcP K@?ðÀ 0ýÀ =›¶ÒK7ÝõÜt×mwÏ›| €@L åÀßF)øàfn8½ „áŒ7θ/À$ùä”»;templates/SwiftBlue/en/icon_contact_www.gif0000755000000000000000000000306511102322340016301 0ustar GIF89aHw!ù,H§h˜˜°È˜¸Ð ¸ÐÐèø ÀØÔèø¨Èà¸ØðÌäø¨ÐèÀÜôÈàøÄàô°Ðè x¨p¨Èÿÿÿp H¸(€¨€°Ðˆ °ˆ ¸p ` Èd˜0€°¨À8ˆ°@¸l¨È¨Èèh¨È˜ÀàX˜Àh˜x P˜À°Øðü¸ èøøÀØÀØðP°üD`ˆ¨¸(€°°Ðð Èà@ˆ°üph˜ülˆ°ÈÈøp€ˆøøü˜ Èè°È¨ø@x˜ˆ¸ØX À¸øøx°Ð` Àp È (H0H€¨ü 0x¨À°Àh Àü¨ü´ üœü€€˜°ÐäøÈàôüüüPhˆphp Àð°Xp€ ¸øÐ0¨ˆx0Øøx¸Àp@ø X|d|pü´ôÄŒôœtü8°ðøÈàð ðøT|xü”$ü|ÐðøÐøØøøÈøø@ðøH¨PÈè°øø8Èøˆðø`Øø€¨À pXøøøÀðø¸xH`Ðè ÈHpø HÀ°`È`xppÐèø¸Øøàøp ¸  ˜P`xøÀ€hpˆ X(X€8¨Ø ð(°ð˜¸È8`˜0€¨8€¸Xh˜ðèЀ°äè쨸`€pØø€ ° ¸°°¨ðȘüÄ„ø 0Èäø¨Ðì dXü¬4xdtL<üÌPP(DÀ¸¨ ˜øø\P@èĘ H@˜È0¨èü„ü¼üŒü”üˆ4ü˜$ÿH° Áƒ*\Èð 'U«^5œH±¢A3JR±ÕÊÕ‹ C@’$›6nœ”qr͘JÊœI³¦Í›6GÎ$³ËÖ“[PjDÑ &ΣH“Ò då•"”.HI(„ªÀ¯`ÊK¶ì×h (P`ª§4”€d¯YÄð¨Ê« *äì1”¶°áÈ#ž²¶[hÉm)%ˆžð¨áÂà7CÖ\Á²¶´i X[À‚µ>pà°v€ kQÀÂZ!"¸ÕA‚ã!d®B…¡(œI˜®ÂžÈT„šÿ@€0\ …5/ÜG­õÖ\w=´Ñ`‡ÝIu•PÄ ÌšÌ wÒAL„-÷Üt×m7Ø8´0S6m°L1)%øà8éDøáˆ.P@;templates/SwiftBlue/en/icon_contact_yahoo.gif0000755000000000000000000000305711102322402016574 0ustar GIF89aHw!ù,H§h˜Ðèø¸Øð˜°ÈÈàø ¸Ð˜¸ÈÀàð¨Èà ÀبÐè°Ðè¨ÀØd˜˜¸Ðˆ ¸¨Èèèèèp ÜØØø0ˆ¸Ø¨¸0€°€°Ð8d” ÀÐèXx°Øð¸Ðèh¨ÈÈàð¨Àü4` À` Èxˆˆè`€è(P¸ÈØ(€¨ˆ °°Ððø8üLh°Èˆ¨¸°Àð0€ü`|X˜À  x¨Ðpˆ˜ÀàÀØðP˜Àø(ð(ÀØè€¸Øø8X°ÈØp¨ÈH°ÈØèü(LИ°ðXxÐàðø@`üPlЈ¨ø@ð 8Øx˜ààà¨0XäääìHh€˜˜¨°Àü$Dø$Lè(HÀÐàìììü D¸pˆÀ¨À°Èà˜x€P˜¸ø0¸Xp¸Øø H x€H¸P¸8ˆ°ˆ˜ è@ð Hà HÀØø(PÀ¨È(€°€˜°¨`hÜD\ð@ ÈàÈhˆü$L࠸иÐðPph˜”h|Ð@Xà8`P°(hØ`xˆ˜˜ÈH`ø0à¨ø8àXpð<\ÀP` d”Ðàø@dø8`”x¨¨è@`d0lŒÐHXШ°è(°ÀÐÀXp¸°ÐШàpˆ°ÈŒXpüXt¨°°°Ð ¸È@l„ÐÈØ¸Xh¸0\È °Àظ Àˆ˜ü\xÐXpèPp¸ÀÐ@h€àPh °ÈpHpXˆ˜¨¸Ø@h@ˆ° ¨hˆÐx˜ÿH° Áƒ*\˜P‚ #B„‚…¡Å‹ Bi‘$ɦ3Nµ ʼn„“(OVÌÈ’eQ†ªˆÈB„È8zü R¤¡§OF‚ J´¨Ñ£H }é“&&;¾T\<<<ÂÒàÂÔâÒèøÿHP˜•*\Ȱ¡Ã‡#(”EЬ"ÌHÜȱãF Aú*rd‚In}ɲ¥Ë—0cÊœé’àË`ÀLš ÁKÖ/š@ƒ  @ €µÖ°5ìNIîd BŒ «X³jÝʵ«×¯Å ±`A‚'6ÀB£(ÈGV¯®bÕ¡®Ý?@ú”C‰±€ L¸°aÂ2ó(›@EÚ* `Ù°(GJ”ø‘é‡f-;¾|aÒ«‘¦²¨S«Fí£¥,Xv‰Rö€±[²Xºñ  WXa„eY<qÑ\¢I=$䱂¥ “K=­‰u¶»÷ï @ÿû¬‘HH$°}£;‹ñà»;þ<òŠ&F/¨È–!†Ã$QJ'XpP‰Op‚É D(ᄊG¡“Mè °¢Àá…Àm`¢pÃá7°¤‚c–pÂŒ!l!Áo˜ÁÁ€p@ d0Biä‘@ †xâEqÀdF‚¡ÆpG‘""id\®Ð@~,$KÀíÁ‡.¤™¦ äàEpàÄ9Bxæ©çž ˆa €’ Gr ']4@BzyÊ!Ÿyâg˜ˆÉ@˜²Y›¼"Á§ ²™ƒeˆ²^šÀH޶|²ÔÌÌÌÔÔÔv¤n¢Â<†°Bޏ¶¶¶ôôôŒŒŒFLRÌäøªªªBNXîîîLpªÊä¤Êæ¾ÜöXœÂ€´Ôª¼rrr lž‚˜¬rˆ˜’ÀÞ¤ÄÜ–¾Üv¬ÎZœÄr¢¦Êæ,€®r¢Œ°Êˆ®È–°È\žÂ€˜ªn‚’v¤Â”°ÄÙÙÙT´WWU^œÀR´Š¬Ä–¼ØŠ¢¶r¦È4‚®’®Â€²Ò––– 8882‚¬–¸Ò†²Î(|ª8BLxŽ f¤ÈšÄà4:@ÀÜòÈàò¾ÚðœÆà¶Öî0„°®Òêððð†˜¦ºÚðý8s³¨Ñ£H`Ñ ˜2>A:꓌X³jÝʵ«×¯`µŠ`0fƒ„~Í` H^XsÙ@‚ä »*˜Áµ+,×$ºüjM"*‰`¬"-»à¬HÌxJ„€R6T¨†™Î`T@ŠéÓ¨S·‘›Ó:æÀô§.e´1-“î—164Fûx‡j^žöôåÄ]5@¿q‚Õ*W ²kß¾ 6­ ÿÐ$;'ڟȾCU§š@¡ÝÉzí1žh—p–ø$$0Á¼´Á©a*7@ sÃ4Ë(cÀ…f˜áÕd À NfÀ #nh †(fhÊ ®™q^@¼ÄßY¾ F0Z0!È‘ 1¤@¦ä’L@͒РÄR*Ù\Édp(©–J¦ C d¦0 Çé@ &`ðÁ/a¸Æn”ÑÌF00ÅX£€ $ è „ @„>3_‡zˆ90¡^H3èx„êá @tš6¶ùAh ÁK3¢©ƒ Ä‘Æ5ÿ‘†t`€ã­¸æŠ@ %àhGDÀxq+¯ðÀ·*Ë,Ž‘€k ÆÞjn’ªA(àíKhr æ`@$eLb„$0âBðÆ+ï¼S¬{€d¼¬€ƒWp¼8P…#V@±Âñz€¼™TáÁÄ`R*· ¸ÐB·ðR7f[j ›hòJ%CPR€·,·ì²>tÅ D° \bÉl!DË\D@]øÐ²´,DÍL !… @@ ¼¤¹h|pqÆP2ˆÔh§­öÚR ÒÛpÇwTQ€ 0€ðbñÒå’Úm RW]€T°wŒ7îøãG.ùä”ã­·ÞdþÀÞ‰€ä ˆ,BARD ÂÝ—k¾ù嬷îúë°Ç.;æš'nûŠ–RHõîûï½çüðÄïÑñÈ'¿Q@;templates/SwiftBlue/en/icon_post_report.gif0000755000000000000000000000211011102322724016316 0ustar GIF89aw!ù,§f™»¤ÂÚ—³É¸ÚõÁßöÅá÷ÍåøºÑ›¸Ï²Óí©Èá¬Ë嘴˯Ðéµ×ñÒèùÒçùÐæø»ÜõÉã÷¿ÞöÐçøž»Ò¡¿Ö ¾Õf˜­Íç´Öð±Ñë§Æß§ÅÞ½ÝöËäøªÊãœ¹Ð¬Ìæ¯ÏéÈâ÷·Ùô¢ÀØ™µÌÔéùÆàõ¾ÝöªÐìÓèùÔèù½ÚïÄŠ·Öï©t‚Æ·ÇÑçùÌÉÙnªËÊãø½7<®Êà¾ÛðÏæøÎåøÌåøa¢Éa£Éi›¿ÛóºÛõ¤Ëç ½Õ³ÔîÊã÷Çâ÷¥ÄÛ°Ïé¼^h¹”¥Æá÷´ÕïÄà÷¯R]«ÊäÃà÷·#'ÀÞö»Ûõ¥ÃÛ¥Äܵ¹Ñ®Î裊›i›¼Üö¹Ûõ£ÂÚ·Øóº ÀFL ¾Ô©¾Ž¨½™¶ÌŸ½Ô™µËŠ­Å“®Ä›¸ÎU’µ•°ÆŸ¼Ó¢¿×œ¹Î«À¬x‡ªÉ⚷΢Èä´/4¬‡—«Ëä¨Çà[˜µ¹ ¬NW°Ñê#y¤h›—¼Ø^Á°ÊžZfg˜”¯Äm©Ë» ¼Öì‹¥ºS’¶˜´Ê]žÃP”¶hšd–d—·Ì4‚©e—e—h˜—²É¤Š›¦Åݱ*0ÿH° ÁƒXȰaC‚#J€‹¡+`¼0ˆ ¸"@€…8$DXiㆌ,B¶ PHC.\èáCŒ€Cˆ†„ ‚B‘†?(‘C‡;f€pÄÆT8‘äT”,yâÁD‰ €2Å€…&¢¤¢¥Á¨b!„•YÐ0ò,W4ìBÁKÑÂlIðe@Š 44,¦d#ä˜Q0æ † 04ô܇žPÄW“!+¸èbÀšõ>r}P#Àk$Ô´ð,$­w÷~†•%HTu°!À *S¢BêÃJÅCPsa ¤C)RäÿŸ <§4åË›PþB(ÊÃOPéBúôóQ@c?Á… “l!@ ‘tÖ;8ÐBEx^Oü°ÅP@áÅb8`† `  hQƒ†²À‡ ŒÈ¡† z(ˆ0ñÅ$œ!@#h’Ê-Ù¸@Ä %ápxÁD¯¨ ‚ 4Ù¤A8ùd& `Ä#rÌ¡€K(R>Ùå(0‡{`ÁG8hö—ˆ BEp@qä *(@qì° €:àÀ T*h!Àà€…""@"‰:@…†) 8 È"tʈ8‚@œvLðÀ#TDž”TGC Nøÿx ÔZ+&–\bëÔÚžN!€\Ñ…­¶‹€½"ÐÉ_›dP…ŸL0B2”ä)B„#0ÂUX D„$€™w@od’ ÀlPâÀ˜.B=ñx€,^Á cØ ˆfÀB % àê«"ÿêjHŒ€À8¾ÚÚ°úê«à€%´éBÌ2Û™CüÀ‡AèÑÇ ”HBƒ yì±fš9$°@ä@A4i·ß¦I²7P`/ @üò[óÉBLr‚"‹œðH$S¸B³ÍBÄ"@ ³N|pÁN4 ÂÃç‹EXô˯¶ðëÂÊ.üË“A.Ð ,±Ð@Ã+—lò‰%,`ÀÏ@-ôÐDôH#-ÀÒKEO ›€,xÁÕ™\$íõ×`‡-6ØL—m¶¾{]Â!  Zx ·,L!…Ùxç­÷Þ|›]zYÕ nx(@EÕâŒW5PãG.Õ@;templates/SwiftBlue/en/icon_user_search.gif0000755000000000000000000000313011102323154016242 0ustar GIF89aHw!ù,H§h˜˜°È˜¸ÈÔèø ¸ÐÈàø ÀØÐèø0„°¨ÈàÌäø¨ÌäÀàô¼ÜôP´(€¨˜¸Ð lœ¸Øðh¨È,€¬¸Ð€°Ð$|¨t¤¸Øôp \ Ä°ÐðÀÜôˆ¸ØÄàô°Ð耴ԠÀÐd˜ Èà¨À¨ÐèP¸`˜¸H¸ÀÜÐäøx°Ð x¨˜Äàh˜P˜Àˆ°È¤Ìäp¨Ðˆ¨Ð°èð˜°ÐÀìôˆ¨¸` ÈØìðx¨Èh¨ÐXœÀÀØp˜ÈD`°Dh´p ÀøÈˆÐ@X˜¸` Ààèð èðh Èx°Ø”¨Ì0€°¨Àà8ˆ°Ììð¤Èà(x¨Ø8h À°ÈÀÜðd¤È¤ÄÔÜð8„ÌÈäøt¬ÐäðX˜Øˆ Èp€¸hˆÈ@h°èèаØðÈÜì˜ÈàH€°ø°@„Øð`x°@ˆ°°€`ø¨l¨ÈðÐt¨Ô€°Ø€¸Ø `` ¨È˜ Ä¨¨ØXРØðÄìð@ˆ¸ÀØèp¨ÈX(`x¬ØˆÔðø° äðˆÐð¸ðø¼Øð€¨ÈˆÄÔœ¼ä¨°à<€Ìp@pø¨¸Ðàlx¸¨èð°Èèp¸ÐøØÈèð0 Ð°Àˆ°ÐИ`€PpdÄÜx¨ÀˆÐÄÜðŒ¼Ü`ØðŒ¼Ø@¨Ð˜ à¨¸¸h¤Èˆ¨ÈxÀÔ¼ÐàÔà`P`¨¸Ààð¨Ðì¸ìðTx¼¨ìð\t¼¼´Ð ìðL„°ÿH° Áƒ*\È “/A„¼‚Õ°¢Å‹hÜ(«UœS¥0%jDb£É“(Sª\¹’`Ê3@a4 ”!-uJ²ÜɳçI`¸±B è#8ƒð¤ ä(I1eJµªÕ«X‹"ØŠ`Á‚-@xX¥€ŒøHêdI,O®XáÀ%ˆ©((üà*"¯_\AP(Á_½' ƒøAA„*,\ ÖÊt˜´RÁ¡%YþØÈ³c!(dÀƒ×ÈNàÃë­m/h-[ã(¯ $€ àÅV4ðà€C“ 3LzeA}Á¦;‚’Ø„‰0Žÿ0ðÀ²Ç«W!€ê‹«‡=Bãd˜"¹pPA!HgXcx¡E6ìÅaÜ A%4ÐÀ '4 ›…Zx‚y¨ÀarúA%˜g¡'´@†p¢ÁøP ˜¤ já‡=ÁJh”A /üÛl ´ð_ 8ÐüÇ[¬õà@ ü÷ŸdN€R (`ÒrxðFSÌAÇ 5ÔyÃ(0 *H ÁT„rè<ñ \1™*P €2zdJ :\àéài’˜DRDv @DàêàÿÈ@ èÁ@7ÊŠ#àZÁà8é¬.lPŸÀ…¬TðšD' ¡`™‘,R„"ˆPRÅ„®Ä樠¤é® ¸àn’@›f%Ã¥é‚ yÁNXËÃ#ð€ášD£%S\¢‰ &Pž#T|€ lXà¯ì†L®x♨À%§6ÄF templates/SwiftBlue/en/stylesheet.css0000755000000000000000000000356513325406102015163 0ustar /* Online image */ .imageset.icon_contact_aim { background-image: url("./icon_contact_aim.gif"); } .imageset.icon_contact_email { background-image: url("./icon_contact_email.gif"); } .imageset.icon_contact_icq { background-image: url("./icon_contact_icq.gif"); } .imageset.icon_contact_jabber { background-image: url("./icon_contact_jabber.gif"); } .imageset.icon_contact_msnm { background-image: url("./icon_contact_msnm.gif"); } .imageset.icon_contact_pm { background-image: url("./icon_contact_pm.gif"); } .imageset.icon_contact_yahoo { background-image: url("./icon_contact_yahoo.gif"); } .imageset.icon_contact_www { background-image: url("./icon_contact_www.gif"); } .imageset.icon_post_delete { background-image: url("./icon_post_delete.gif"); } .imageset.icon_post_edit { background-image: url("./icon_post_edit.gif"); } .imageset.icon_post_info { background-image: url("./icon_post_info.gif"); } .imageset.icon_post_quote { background-image: url("./icon_post_quote.gif"); } .imageset.icon_post_report { background-image: url("./icon_post_report.gif"); } .imageset.icon_user_online { background-image: url("./icon_user_online.gif"); } .imageset.icon_user_offline { background-image: url("./icon_user_offline.gif"); } .imageset.icon_user_profile { background-image: url("./icon_user_profile.gif"); } .imageset.icon_user_search { background-image: url("./icon_user_search.gif"); padding-left: 72px; padding-top: 20px; } .imageset.icon_user_warn { background-image: url("./icon_user_warn.gif"); } .imageset.button_pm_new { background-image: url("./button_pm_new.gif"); } .imageset.button_pm_reply { background-image: url("./button_pm_reply.gif"); } .imageset.button_topic_locked { background-image: url("./button_topic_locked.gif"); } .imageset.button_topic_new { background-image: url("./button_topic_new.gif"); } .imageset.button_topic_reply { background-image: url("./button_topic_reply.gif"); }templates/SwiftBlue/error_body.html0000755000000000000000000000061211500513600014673 0ustar
    {USERNAME} {L_WROTE}:
    {L_QUOTE}:
    {L_CODE}:
    {DESCRIPTION} {EMAIL}


    templates/SwiftBlue/biblia_online.js0000755000000000000000000000076411500513576015007 0ustar document.writeln(""); document.writeln("");templates/SwiftBlue/collapsiblecategories.js0000755000000000000000000000164513323476734016570 0ustar (function($) { // Avoid conflicts with other libraries 'use strict'; // Get the collapsible element (has class .topiclist.forums OR .collapsible) $.fn.getCollapsible = function() { return this.closest('.forabg').find('.topiclist.forums, .collapsible').eq(0); }; $('a.collapse-btn').each(function() { var $this = $(this), hidden = $this.attr('data-hidden'), $content = $this.getCollapsible(); // Return if no collapsible content could be found if (!$content.length) { return; } // Unhide the collapse buttons (makes them JS dependent) $this.show(); // Hide hidden forums on load if (hidden) { $content.hide(); } }); phpbb.addAjaxCallback('phpbb_collapse', function(res) { if (res.success) { $(this) .toggleClass('collapse-show collapse-hide') .getCollapsible() .stop(true, true) .slideToggle('fast') ; } }); })(jQuery); // Avoid conflicts with other libraries templates/SwiftBlue/cookieconsent.min.css0000755000000000000000000001153613603236600016015 0ustar .cc-window{opacity:1;-webkit-transition:opacity 1s ease;transition:opacity 1s ease}.cc-window.cc-invisible{opacity:0}.cc-animate.cc-revoke{-webkit-transition:transform 1s ease;-webkit-transition:-webkit-transform 1s ease;transition:-webkit-transform 1s ease;transition:transform 1s ease;transition:transform 1s ease,-webkit-transform 1s ease}.cc-animate.cc-revoke.cc-top{-webkit-transform:translateY(-2em);transform:translateY(-2em)}.cc-animate.cc-revoke.cc-bottom{-webkit-transform:translateY(2em);transform:translateY(2em)}.cc-animate.cc-revoke.cc-active.cc-top{-webkit-transform:translateY(0);transform:translateY(0)}.cc-animate.cc-revoke.cc-active.cc-bottom{-webkit-transform:translateY(0);transform:translateY(0)}.cc-revoke:hover{-webkit-transform:translateY(0);transform:translateY(0)}.cc-grower{max-height:0;overflow:hidden;-webkit-transition:max-height 1s;transition:max-height 1s} .cc-revoke,.cc-window{position:fixed;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;font-family:Helvetica,Calibri,Arial,sans-serif;font-size:16px;line-height:1.5em;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:nowrap;flex-wrap:nowrap;z-index:9999}.cc-window.cc-static{position:static}.cc-window.cc-floating{padding:2em;max-width:24em;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.cc-window.cc-banner{padding:1em 1.8em;width:100%;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.cc-revoke{padding:.5em}.cc-revoke:hover{text-decoration:underline}.cc-header{font-size:18px;font-weight:700}.cc-btn,.cc-close,.cc-link,.cc-revoke{cursor:pointer}.cc-link{opacity:.8;display:inline-block;padding:.2em;text-decoration:underline}.cc-link:hover{opacity:1}.cc-link:active,.cc-link:visited{color:initial}.cc-btn{display:block;padding:.4em .8em;font-size:.9em;font-weight:700;border-width:2px;border-style:solid;text-align:center;white-space:nowrap}.cc-highlight .cc-btn:first-child{background-color:transparent;border-color:transparent}.cc-highlight .cc-btn:first-child:focus,.cc-highlight .cc-btn:first-child:hover{background-color:transparent;text-decoration:underline}.cc-close{display:block;position:absolute;top:.5em;right:.5em;font-size:1.6em;opacity:.9;line-height:.75}.cc-close:focus,.cc-close:hover{opacity:1} .cc-revoke.cc-top{top:0;left:3em;border-bottom-left-radius:.5em;border-bottom-right-radius:.5em}.cc-revoke.cc-bottom{bottom:0;left:3em;border-top-left-radius:.5em;border-top-right-radius:.5em}.cc-revoke.cc-left{left:3em;right:unset}.cc-revoke.cc-right{right:3em;left:unset}.cc-top{top:1em}.cc-left{left:1em}.cc-right{right:1em}.cc-bottom{bottom:1em}.cc-floating>.cc-link{margin-bottom:1em}.cc-floating .cc-message{display:block;margin-bottom:1em}.cc-window.cc-floating .cc-compliance{-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto}.cc-window.cc-banner{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.cc-banner.cc-top{left:0;right:0;top:0}.cc-banner.cc-bottom{left:0;right:0;bottom:0}.cc-banner .cc-message{display:block;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;max-width:100%;margin-right:1em}.cc-compliance{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:justify;align-content:space-between}.cc-floating .cc-compliance>.cc-btn{-webkit-box-flex:1;-ms-flex:1;flex:1}.cc-btn+.cc-btn{margin-left:.5em} @media print{.cc-revoke,.cc-window{display:none}}@media screen and (max-width:900px){.cc-btn{white-space:normal}}@media screen and (max-width:414px) and (orientation:portrait),screen and (max-width:736px) and (orientation:landscape){.cc-window.cc-top{top:0}.cc-window.cc-bottom{bottom:0}.cc-window.cc-banner,.cc-window.cc-floating,.cc-window.cc-left,.cc-window.cc-right{left:0;right:0}.cc-window.cc-banner{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.cc-window.cc-banner .cc-compliance{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.cc-window.cc-floating{max-width:none}.cc-window .cc-message{margin-bottom:1em}.cc-window.cc-banner{-webkit-box-align:unset;-ms-flex-align:unset;align-items:unset}.cc-window.cc-banner .cc-message{margin-right:0}} .cc-floating.cc-theme-classic{padding:1.2em;border-radius:5px}.cc-floating.cc-type-info.cc-theme-classic .cc-compliance{text-align:center;display:inline;-webkit-box-flex:0;-ms-flex:none;flex:none}.cc-theme-classic .cc-btn{border-radius:5px}.cc-theme-classic .cc-btn:last-child{min-width:140px}.cc-floating.cc-type-info.cc-theme-classic .cc-btn{display:inline-block} .cc-theme-edgeless.cc-window{padding:0}.cc-floating.cc-theme-edgeless .cc-message{margin:2em;margin-bottom:1.5em}.cc-banner.cc-theme-edgeless .cc-btn{margin:0;padding:.8em 1.8em;height:100%}.cc-banner.cc-theme-edgeless .cc-message{margin-left:1em}.cc-floating.cc-theme-edgeless .cc-btn+.cc-btn{margin-left:0}templates/SwiftBlue/cookieconsent.min.js0000755000000000000000000004720013765411536015652 0ustar !function(e){if(!e.hasInitialised){var t={escapeRegExp:function(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")},hasClass:function(e,t){var i=" ";return 1===e.nodeType&&(i+e.className+i).replace(/[\n\t]/g,i).indexOf(i+t+i)>=0},addClass:function(e,t){e.className+=" "+t},removeClass:function(e,t){var i=new RegExp("\\b"+this.escapeRegExp(t)+"\\b");e.className=e.className.replace(i,"")},interpolateString:function(e,t){return e.replace(/{{([a-z][a-z0-9\-_]*)}}/gi,function(e){return t(arguments[1])||""})},getCookie:function(e){var t=("; "+document.cookie).split("; "+e+"=");return t.length<2?void 0:t.pop().split(";").shift()},setCookie:function(e,t,i,n,o,s){var r=new Date;r.setHours(r.getHours()+24*(i||365));var a=[e+"="+t,"expires="+r.toUTCString(),"path="+(o||"/")];n&&a.push("domain="+n),s&&a.push("secure"),document.cookie=a.join(";")},deepExtend:function(e,t){for(var i in t)t.hasOwnProperty(i)&&(i in e&&this.isPlainObject(e[i])&&this.isPlainObject(t[i])?this.deepExtend(e[i],t[i]):e[i]=t[i]);return e},throttle:function(e,t){var i=!1;return function(){i||(e.apply(this,arguments),i=!0,setTimeout(function(){i=!1},t))}},hash:function(e){var t,i,n=0;if(0===e.length)return n;for(t=0,i=e.length;t=128?"#000":"#fff"},getLuminance:function(e){var t=parseInt(this.normaliseHex(e),16),i=38+(t>>16),n=38+(t>>8&255),o=38+(255&t);return"#"+(16777216+65536*(i<255?i<1?0:i:255)+256*(n<255?n<1?0:n:255)+(o<255?o<1?0:o:255)).toString(16).slice(1)},isMobile:function(){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)},isPlainObject:function(e){return"object"==typeof e&&null!==e&&e.constructor==Object},traverseDOMPath:function(e,i){return e&&e.parentNode?t.hasClass(e,i)?e:this.traverseDOMPath(e.parentNode,i):null}};e.status={deny:"deny",allow:"allow",dismiss:"dismiss"},e.transitionEnd=function(){var e=document.createElement("div"),t={t:"transitionend",OT:"oTransitionEnd",msT:"MSTransitionEnd",MozT:"transitionend",WebkitT:"webkitTransitionEnd"};for(var i in t)if(t.hasOwnProperty(i)&&void 0!==e.style[i+"ransition"])return t[i];return""}(),e.hasTransition=!!e.transitionEnd;var i=Object.keys(e.status).map(t.escapeRegExp);e.customStyles={},e.Popup=function(){var n={enabled:!0,container:null,cookie:{name:"cookieconsent_status",path:"/",domain:"",expiryDays:365,secure:!1},onPopupOpen:function(){},onPopupClose:function(){},onInitialise:function(e){},onStatusChange:function(e,t){},onRevokeChoice:function(){},onNoCookieLaw:function(e,t){},content:{header:"Cookies used on the website!",message:"This website uses cookies to ensure you get the best experience on our website.",dismiss:"Got it!",allow:"Allow cookies",deny:"Decline",link:"Learn more",href:"https://www.cookiesandyou.com",close:"❌",target:"_blank",policy:"Cookie Policy"},elements:{header:'{{header}} ',message:'{{message}}',messagelink:'{{message}} {{link}}',dismiss:'{{dismiss}}',allow:'{{allow}}',deny:'{{deny}}',link:'{{link}}',close:'{{close}}'},window:'',revokeBtn:'
    {{policy}}
    ',compliance:{info:'
    {{dismiss}}
    ',"opt-in":'
    {{deny}}{{allow}}
    ',"opt-out":'
    {{deny}}{{allow}}
    '},type:"info",layouts:{basic:"{{messagelink}}{{compliance}}","basic-close":"{{messagelink}}{{compliance}}{{close}}","basic-header":"{{header}}{{message}}{{link}}{{compliance}}"},layout:"basic",position:"bottom",theme:"block",static:!1,palette:null,revokable:!1,animateRevokable:!0,showLink:!0,dismissOnScroll:!1,dismissOnTimeout:!1,dismissOnWindowClick:!1,ignoreClicksFrom:["cc-revoke","cc-btn"],autoOpen:!0,autoAttach:!0,whitelistPage:[],blacklistPage:[],overrideHTML:null};function o(){this.initialise.apply(this,arguments)}function s(e){this.openingTimeout=null,t.removeClass(e,"cc-invisible")}function r(t){t.style.display="none",t.removeEventListener(e.transitionEnd,this.afterTransition),this.afterTransition=null}function a(){var e=this.options.position.split("-"),t=[];return e.forEach(function(e){t.push("cc-"+e)}),t}function c(n){var o=this.options,s=document.createElement("div"),r=o.container&&1===o.container.nodeType?o.container:document.body;s.innerHTML=n;var a=s.children[0];return a.style.display="none",t.hasClass(a,"cc-window")&&e.hasTransition&&t.addClass(a,"cc-invisible"),this.onButtonClick=function(n){var o=t.traverseDOMPath(n.target,"cc-btn")||n.target;if(t.hasClass(o,"cc-btn")){var s=o.className.match(new RegExp("\\bcc-("+i.join("|")+")\\b")),r=s&&s[1]||!1;r&&(this.setStatus(r),this.close(!0))}t.hasClass(o,"cc-close")&&(this.setStatus(e.status.dismiss),this.close(!0));t.hasClass(o,"cc-revoke")&&this.revokeChoice()}.bind(this),a.addEventListener("click",this.onButtonClick),o.autoAttach&&(r.firstChild?r.insertBefore(a,r.firstChild):r.appendChild(a)),a}function l(e){return"000000"==(e=t.normaliseHex(e))?"#222":t.getLuminance(e)}function u(e,t){for(var i=0,n=e.length;i=0;o&&t(n);return o}.call(this)&&(this.options.enabled=!1),u(this.options.blacklistPage,location.pathname)&&(this.options.enabled=!1),u(this.options.whitelistPage,location.pathname)&&(this.options.enabled=!0);var o=this.options.window.replace("{{classes}}",function(){var i=this.options,n="top"==i.position||"bottom"==i.position?"banner":"floating";t.isMobile()&&(n="floating");var o=["cc-"+n,"cc-type-"+i.type,"cc-theme-"+i.theme];i.static&&o.push("cc-static");o.push.apply(o,a.call(this));(function(i){var n=t.hash(JSON.stringify(i)),o="cc-color-override-"+n,s=t.isPlainObject(i);this.customStyleSelector=s?o:null,s&&function(i,n,o){if(e.customStyles[i])return void++e.customStyles[i].references;var s={},r=n.popup,a=n.button,c=n.highlight;r&&(r.text=r.text?r.text:t.getContrast(r.background),r.link=r.link?r.link:r.text,s[o+".cc-window"]=["color: "+r.text,"background-color: "+r.background],s[o+".cc-revoke"]=["color: "+r.text,"background-color: "+r.background],s[o+" .cc-link,"+o+" .cc-link:active,"+o+" .cc-link:visited"]=["color: "+r.link],a&&(a.text=a.text?a.text:t.getContrast(a.background),a.border=a.border?a.border:"transparent",s[o+" .cc-btn"]=["color: "+a.text,"border-color: "+a.border,"background-color: "+a.background],a.padding&&s[o+" .cc-btn"].push("padding: "+a.padding),"transparent"!=a.background&&(s[o+" .cc-btn:hover, "+o+" .cc-btn:focus"]=["background-color: "+(a.hover||l(a.background))]),c?(c.text=c.text?c.text:t.getContrast(c.background),c.border=c.border?c.border:"transparent",s[o+" .cc-highlight .cc-btn:first-child"]=["color: "+c.text,"border-color: "+c.border,"background-color: "+c.background]):s[o+" .cc-highlight .cc-btn:first-child"]=["color: "+r.text]));var u=document.createElement("style");document.head.appendChild(u),e.customStyles[i]={references:1,element:u.sheet};var h=-1;for(var p in s)s.hasOwnProperty(p)&&u.sheet.insertRule(p+"{"+s[p].join(";")+"}",++h)}(n,i,"."+o);return s}).call(this,this.options.palette);this.customStyleSelector&&o.push(this.customStyleSelector);return o}.call(this).join(" ")).replace("{{children}}",function(){var e={},i=this.options;i.showLink||(i.elements.link="",i.elements.messagelink=i.elements.message);Object.keys(i.elements).forEach(function(n){e[n]=t.interpolateString(i.elements[n],function(e){var t=i.content[e];return e&&"string"==typeof t&&t.length?t:""})});var n=i.compliance[i.type];n||(n=i.compliance.info);e.compliance=t.interpolateString(n,function(t){return e[t]});var o=i.layouts[i.layout];o||(o=i.layouts.basic);return t.interpolateString(o,function(t){return e[t]})}.call(this)),s=this.options.overrideHTML;if("string"==typeof s&&s.length&&(o=s),this.options.static){var r=c.call(this,'
    '+o+"
    ");r.style.display="",this.element=r.firstChild,this.element.style.display="none",t.addClass(this.element,"cc-invisible")}else this.element=c.call(this,o);(function(){var i=this.setStatus.bind(this),n=this.close.bind(this),o=this.options.dismissOnTimeout;"number"==typeof o&&o>=0&&(this.dismissTimeout=window.setTimeout(function(){i(e.status.dismiss),n(!0)},Math.floor(o)));var s=this.options.dismissOnScroll;if("number"==typeof s&&s>=0){var r=function(t){window.pageYOffset>Math.floor(s)&&(i(e.status.dismiss),n(!0),window.removeEventListener("scroll",r),this.onWindowScroll=null)};this.options.enabled&&(this.onWindowScroll=r,window.addEventListener("scroll",r))}var a=this.options.dismissOnWindowClick,c=this.options.ignoreClicksFrom;if(a){var l=function(o){for(var s=!1,r=o.path.length,a=c.length,u=0;uo&&(i=!0),i?t.hasClass(n,"cc-active")||t.addClass(n,"cc-active"):t.hasClass(n,"cc-active")&&t.removeClass(n,"cc-active")},200);this.onMouseMove=o,window.addEventListener("mousemove",o)}}}.call(this),this.options.autoOpen&&this.autoOpen()},o.prototype.destroy=function(){this.onButtonClick&&this.element&&(this.element.removeEventListener("click",this.onButtonClick),this.onButtonClick=null),this.dismissTimeout&&(clearTimeout(this.dismissTimeout),this.dismissTimeout=null),this.onWindowScroll&&(window.removeEventListener("scroll",this.onWindowScroll),this.onWindowScroll=null),this.onWindowClick&&(window.removeEventListener("click",this.onWindowClick),this.onWindowClick=null),this.onMouseMove&&(window.removeEventListener("mousemove",this.onMouseMove),this.onMouseMove=null),this.element&&this.element.parentNode&&this.element.parentNode.removeChild(this.element),this.element=null,this.revokeBtn&&this.revokeBtn.parentNode&&this.revokeBtn.parentNode.removeChild(this.revokeBtn),this.revokeBtn=null,function(i){if(t.isPlainObject(i)){var n=t.hash(JSON.stringify(i)),o=e.customStyles[n];if(o&&!--o.references){var s=o.element.ownerNode;s&&s.parentNode&&s.parentNode.removeChild(s),e.customStyles[n]=null}}}(this.options.palette),this.options=null},o.prototype.open=function(t){if(this.element)return this.isOpen()||(e.hasTransition?this.fadeIn():this.element.style.display="",this.options.revokable&&this.toggleRevokeButton(),this.options.onPopupOpen.call(this)),this},o.prototype.close=function(t){if(this.element)return this.isOpen()&&(e.hasTransition?this.fadeOut():this.element.style.display="none",t&&this.options.revokable&&this.toggleRevokeButton(!0),this.options.onPopupClose.call(this)),this},o.prototype.fadeIn=function(){var i=this.element;if(e.hasTransition&&i&&(this.afterTransition&&r.call(this,i),t.hasClass(i,"cc-invisible"))){if(i.style.display="",this.options.static){var n=this.element.clientHeight;this.element.parentNode.style.maxHeight=n+"px"}this.openingTimeout=setTimeout(s.bind(this,i),20)}},o.prototype.fadeOut=function(){var i=this.element;e.hasTransition&&i&&(this.openingTimeout&&(clearTimeout(this.openingTimeout),s.bind(this,i)),t.hasClass(i,"cc-invisible")||(this.options.static&&(this.element.parentNode.style.maxHeight=""),this.afterTransition=r.bind(this,i),i.addEventListener(e.transitionEnd,this.afterTransition),t.addClass(i,"cc-invisible")))},o.prototype.isOpen=function(){return this.element&&""==this.element.style.display&&(!e.hasTransition||!t.hasClass(this.element,"cc-invisible"))},o.prototype.toggleRevokeButton=function(e){this.revokeBtn&&(this.revokeBtn.style.display=e?"":"none")},o.prototype.revokeChoice=function(e){this.options.enabled=!0,this.clearStatus(),this.options.onRevokeChoice.call(this),e||this.autoOpen()},o.prototype.hasAnswered=function(t){return Object.keys(e.status).indexOf(this.getStatus())>=0},o.prototype.hasConsented=function(t){var i=this.getStatus();return i==e.status.allow||i==e.status.dismiss},o.prototype.autoOpen=function(e){!this.hasAnswered()&&this.options.enabled?this.open():this.hasAnswered()&&this.options.revokable&&this.toggleRevokeButton(!0)},o.prototype.setStatus=function(i){var n=this.options.cookie,o=t.getCookie(n.name),s=Object.keys(e.status).indexOf(o)>=0;Object.keys(e.status).indexOf(i)>=0?(t.setCookie(n.name,i,n.expiryDays,n.domain,n.path,n.secure),this.options.onStatusChange.call(this,i,s)):this.clearStatus()},o.prototype.getStatus=function(){return t.getCookie(this.options.cookie.name)},o.prototype.clearStatus=function(){var e=this.options.cookie;t.setCookie(e.name,"",-1,e.domain,e.path)},o}(),e.Location=function(){var e={timeout:5e3,services:["ipinfo"],serviceDefinitions:{ipinfo:function(){return{url:"//ipinfo.io",headers:["Accept: application/json"],callback:function(e,t){try{var i=JSON.parse(t);return i.error?s(i):{code:i.country}}catch(e){return s({error:"Invalid response ("+e+")"})}}}},ipinfodb:function(e){return{url:"//api.ipinfodb.com/v3/ip-country/?key={api_key}&format=json&callback={callback}",isScript:!0,callback:function(e,t){try{var i=JSON.parse(t);return"ERROR"==i.statusCode?s({error:i.statusMessage}):{code:i.countryCode}}catch(e){return s({error:"Invalid response ("+e+")"})}}}},maxmind:function(){return{url:"//js.maxmind.com/js/apis/geoip2/v2.1/geoip2.js",isScript:!0,callback:function(e){window.geoip2?geoip2.country(function(t){try{e({code:t.country.iso_code})}catch(t){e(s(t))}},function(t){e(s(t))}):e(new Error("Unexpected response format. The downloaded script should have exported `geoip2` to the global scope"))}}}}};function i(i){t.deepExtend(this.options={},e),t.isPlainObject(i)&&t.deepExtend(this.options,i),this.currentServiceIndex=-1}function n(e,t,i){var n,o=document.createElement("script");o.type="text/"+(e.type||"javascript"),o.src=e.src||e,o.async=!1,o.onreadystatechange=o.onload=function(){var e=o.readyState;clearTimeout(n),t.done||e&&!/loaded|complete/.test(e)||(t.done=!0,t(),o.onreadystatechange=o.onload=null)},document.body.appendChild(o),n=setTimeout(function(){t.done=!0,t(),o.onreadystatechange=o.onload=null},i)}function o(e,t,i,n,o){var s=new(window.XMLHttpRequest||window.ActiveXObject)("MSXML2.XMLHTTP.3.0");if(s.open(n?"POST":"GET",e,1),s.setRequestHeader("Content-type","application/x-www-form-urlencoded"),Array.isArray(o))for(var r=0,a=o.length;r3&&t(s)}),s.send(n)}function s(e){return new Error("Error ["+(e.code||"UNKNOWN")+"]: "+e.error)}return i.prototype.getNextService=function(){var e;do{e=this.getServiceByIdx(++this.currentServiceIndex)}while(this.currentServiceIndex=0,revokable:t.revokable.indexOf(e)>=0,explicitAction:t.explicitAction.indexOf(e)>=0}},i.prototype.applyLaw=function(e,t){var i=this.get(t);return i.hasLaw||(e.enabled=!1,"function"==typeof e.onNoCookieLaw&&e.onNoCookieLaw(t,i)),this.options.regionalLaw&&(i.revokable&&(e.revokable=!0),i.explicitAction&&(e.dismissOnScroll=!1,e.dismissOnTimeout=!1)),e},i}(),e.initialise=functitemplates/SwiftBlue/core.js0000755000000000000000000013754313603236600013153 0ustar /* global bbfontstyle */ var phpbb = {}; phpbb.alertTime = 100; (function($) { // Avoid conflicts with other libraries 'use strict'; // define a couple constants for keydown functions. var keymap = { TAB: 9, ENTER: 13, ESC: 27, ARROW_UP: 38, ARROW_DOWN: 40 }; var $dark = $('#darkenwrapper'); var $loadingIndicator; var phpbbAlertTimer = null; phpbb.isTouch = (window && typeof window.ontouchstart !== 'undefined'); // Add ajax pre-filter to prevent cross-domain script execution $.ajaxPrefilter(function(s) { if (s.crossDomain) { s.contents.script = false; } }); /** * Display a loading screen * * @returns {object} Returns loadingIndicator. */ phpbb.loadingIndicator = function() { if (!$loadingIndicator) { $loadingIndicator = $('#loading_indicator'); } if (!$loadingIndicator.is(':visible')) { $loadingIndicator.fadeIn(phpbb.alertTime); // Wait 60 seconds and display an error if nothing has been returned by then. phpbb.clearLoadingTimeout(); phpbbAlertTimer = setTimeout(function() { phpbb.showTimeoutMessage(); }, 60000); } return $loadingIndicator; }; /** * Show timeout message */ phpbb.showTimeoutMessage = function () { var $alert = $('#phpbb_alert'); if ($loadingIndicator.is(':visible')) { phpbb.alert($alert.attr('data-l-err'), $alert.attr('data-l-timeout-processing-req')); } }; /** * Clear loading alert timeout */ phpbb.clearLoadingTimeout = function() { if (phpbbAlertTimer !== null) { clearTimeout(phpbbAlertTimer); phpbbAlertTimer = null; } }; /** * Close popup alert after a specified delay * * @param {int} delay Delay in ms until darkenwrapper's click event is triggered */ phpbb.closeDarkenWrapper = function(delay) { phpbbAlertTimer = setTimeout(function() { $('#darkenwrapper').trigger('click'); }, delay); }; /** * Display a simple alert similar to JSs native alert(). * * You can only call one alert or confirm box at any one time. * * @param {string} title Title of the message, eg "Information" (HTML). * @param {string} msg Message to display (HTML). * * @returns {object} Returns the div created. */ phpbb.alert = function(title, msg) { var $alert = $('#phpbb_alert'); $alert.find('.alert_title').html(title); $alert.find('.alert_text').html(msg); $(document).on('keydown.phpbb.alert', function(e) { if (e.keyCode === keymap.ENTER || e.keyCode === keymap.ESC) { phpbb.alert.close($alert, true); e.preventDefault(); e.stopPropagation(); } }); phpbb.alert.open($alert); return $alert; }; /** * Handler for opening an alert box. * * @param {jQuery} $alert jQuery object. */ phpbb.alert.open = function($alert) { if (!$dark.is(':visible')) { $dark.fadeIn(phpbb.alertTime); } if ($loadingIndicator && $loadingIndicator.is(':visible')) { $loadingIndicator.fadeOut(phpbb.alertTime, function() { $dark.append($alert); $alert.fadeIn(phpbb.alertTime); }); } else if ($dark.is(':visible')) { $dark.append($alert); $alert.fadeIn(phpbb.alertTime); } else { $dark.append($alert); $alert.show(); $dark.fadeIn(phpbb.alertTime); } $alert.on('click', function(e) { e.stopPropagation(); }); $dark.one('click', function(e) { phpbb.alert.close($alert, true); e.preventDefault(); e.stopPropagation(); }); $alert.find('.alert_close').one('click', function(e) { phpbb.alert.close($alert, true); e.preventDefault(); }); }; /** * Handler for closing an alert box. * * @param {jQuery} $alert jQuery object. * @param {bool} fadedark Whether to remove dark background. */ phpbb.alert.close = function($alert, fadedark) { var $fade = (fadedark) ? $dark : $alert; $fade.fadeOut(phpbb.alertTime, function() { $alert.hide(); }); $alert.find('.alert_close').off('click'); $(document).off('keydown.phpbb.alert'); }; /** * Display a simple yes / no box to the user. * * You can only call one alert or confirm box at any one time. * * @param {string} msg Message to display (HTML). * @param {function} callback Callback. Bool param, whether the user pressed * yes or no (or whatever their language is). * @param {bool} fadedark Remove the dark background when done? Defaults * to yes. * * @returns {object} Returns the div created. */ phpbb.confirm = function(msg, callback, fadedark) { var $confirmDiv = $('#phpbb_confirm'); $confirmDiv.find('.alert_text').html(msg); fadedark = typeof fadedark !== 'undefined' ? fadedark : true; $(document).on('keydown.phpbb.alert', function(e) { if (e.keyCode === keymap.ENTER || e.keyCode === keymap.ESC) { var name = (e.keyCode === keymap.ENTER) ? 'confirm' : 'cancel'; $('input[name="' + name + '"]').trigger('click'); e.preventDefault(); e.stopPropagation(); } }); $confirmDiv.find('input[type="button"]').one('click.phpbb.confirmbox', function(e) { var confirmed = this.name === 'confirm'; callback(confirmed); $confirmDiv.find('input[type="button"]').off('click.phpbb.confirmbox'); phpbb.alert.close($confirmDiv, fadedark || !confirmed); e.preventDefault(); e.stopPropagation(); }); phpbb.alert.open($confirmDiv); return $confirmDiv; }; /** * Turn a querystring into an array. * * @argument {string} string The querystring to parse. * @returns {object} The object created. */ phpbb.parseQuerystring = function(string) { var params = {}, i, split; string = string.split('&'); for (i = 0; i < string.length; i++) { split = string[i].split('='); params[split[0]] = decodeURIComponent(split[1]); } return params; }; /** * Makes a link use AJAX instead of loading an entire page. * * This function will work for links (both standard links and links which * invoke confirm_box) and forms. It will be called automatically for links * and forms with the data-ajax attribute set, and will call the necessary * callback. * * For more info, view the following page on the phpBB wiki: * http://wiki.phpbb.com/JavaScript_Function.phpbb.ajaxify * * @param {object} options Options. */ phpbb.ajaxify = function(options) { var $elements = $(options.selector), refresh = options.refresh, callback = options.callback, overlay = (typeof options.overlay !== 'undefined') ? options.overlay : true, isForm = $elements.is('form'), isText = $elements.is('input[type="text"], textarea'), eventName; if (isForm) { eventName = 'submit'; } else if (isText) { eventName = 'keyup'; } else { eventName = 'click'; } $elements.on(eventName, function(event) { var action, method, data, submit, that = this, $this = $(this); if ($this.find('input[type="submit"][data-clicked]').attr('data-ajax') === 'false') { return; } /** * Handler for AJAX errors */ function errorHandler(jqXHR, textStatus, errorThrown) { if (typeof console !== 'undefined' && console.log) { console.log('AJAX error. status: ' + textStatus + ', message: ' + errorThrown); } phpbb.clearLoadingTimeout(); var responseText, errorText = false; try { responseText = JSON.parse(jqXHR.responseText); responseText = responseText.message; } catch (e) {} if (typeof responseText === 'string' && responseText.length > 0) { errorText = responseText; } else if (typeof errorThrown === 'string' && errorThrown.length > 0) { errorText = errorThrown; } else { errorText = $dark.attr('data-ajax-error-text-' + textStatus); if (typeof errorText !== 'string' || !errorText.length) { errorText = $dark.attr('data-ajax-error-text'); } } phpbb.alert($dark.attr('data-ajax-error-title'), errorText); } /** * This is a private function used to handle the callbacks, refreshes * and alert. It calls the callback, refreshes the page if necessary, and * displays an alert to the user and removes it after an amount of time. * * It cannot be called from outside this function, and is purely here to * avoid repetition of code. * * @param {object} res The object sent back by the server. */ function returnHandler(res) { var alert; phpbb.clearLoadingTimeout(); // Is a confirmation required? if (typeof res.S_CONFIRM_ACTION === 'undefined') { // If a confirmation is not required, display an alert and call the // callbacks. if (typeof res.MESSAGE_TITLE !== 'undefined') { alert = phpbb.alert(res.MESSAGE_TITLE, res.MESSAGE_TEXT); } else { $dark.fadeOut(phpbb.alertTime); if ($loadingIndicator) { $loadingIndicator.fadeOut(phpbb.alertTime); } } if (typeof phpbb.ajaxCallbacks[callback] === 'function') { phpbb.ajaxCallbacks[callback].call(that, res); } // If the server says to refresh the page, check whether the page should // be refreshed and refresh page after specified time if required. if (res.REFRESH_DATA) { if (typeof refresh === 'function') { refresh = refresh(res.REFRESH_DATA.url); } else if (typeof refresh !== 'boolean') { refresh = false; } phpbbAlertTimer = setTimeout(function() { if (refresh) { window.location = res.REFRESH_DATA.url; } // Hide the alert even if we refresh the page, in case the user // presses the back button. $dark.fadeOut(phpbb.alertTime, function() { if (typeof alert !== 'undefined') { alert.hide(); } }); }, res.REFRESH_DATA.time * 1000); // Server specifies time in seconds } } else { // If confirmation is required, display a dialog to the user. phpbb.confirm(res.MESSAGE_BODY, function(del) { if (!del) { return; } phpbb.loadingIndicator(); data = $('
    ' + res.S_HIDDEN_FIELDS + '
    ').serialize(); $.ajax({ url: res.S_CONFIRM_ACTION, type: 'POST', data: data + '&confirm=' + res.YES_VALUE + '&' + $('form', '#phpbb_confirm').serialize(), success: returnHandler, error: errorHandler }); }, false); } } // If the element is a form, POST must be used and some extra data must // be taken from the form. var runFilter = (typeof options.filter === 'function'); data = {}; if (isForm) { action = $this.attr('action').replace('&', '&'); data = $this.serializeArray(); method = $this.attr('method') || 'GET'; if ($this.find('input[type="submit"][data-clicked]')) { submit = $this.find('input[type="submit"][data-clicked]'); data.push({ name: submit.attr('name'), value: submit.val() }); } } else if (isText) { var name = $this.attr('data-name') || this.name; action = $this.attr('data-url').replace('&', '&'); data[name] = this.value; method = 'POST'; } else { action = this.href; data = null; method = 'GET'; } var sendRequest = function() { var dataOverlay = $this.attr('data-overlay'); if (overlay && (typeof dataOverlay === 'undefined' || dataOverlay === 'true')) { phpbb.loadingIndicator(); } var request = $.ajax({ url: action, type: method, data: data, success: returnHandler, error: errorHandler, cache: false }); request.always(function() { if ($loadingIndicator && $loadingIndicator.is(':visible')) { $loadingIndicator.fadeOut(phpbb.alertTime); } }); }; // If filter function returns false, cancel the AJAX functionality, // and return true (meaning that the HTTP request will be sent normally). if (runFilter && !options.filter.call(this, data, event, sendRequest)) { return; } sendRequest(); event.preventDefault(); }); if (isForm) { $elements.find('input:submit').click(function () { var $this = $(this); // Remove data-clicked attribute from any submit button of form $this.parents('form:first').find('input:submit[data-clicked]').removeAttr('data-clicked'); $this.attr('data-clicked', 'true'); }); } return this; }; phpbb.search = { cache: { data: [] }, tpl: [], container: [] }; /** * Get cached search data. * * @param {string} id Search ID. * @returns {bool|object} Cached data object. Returns false if no data exists. */ phpbb.search.cache.get = function(id) { if (this.data[id]) { return this.data[id]; } return false; }; /** * Set search cache data value. * * @param {string} id Search ID. * @param {string} key Data key. * @param {string} value Data value. */ phpbb.search.cache.set = function(id, key, value) { if (!this.data[id]) { this.data[id] = { results: [] }; } this.data[id][key] = value; }; /** * Cache search result. * * @param {string} id Search ID. * @param {string} keyword Keyword. * @param {Array} results Search results. */ phpbb.search.cache.setResults = function(id, keyword, results) { this.data[id].results[keyword] = results; }; /** * Trim spaces from keyword and lower its case. * * @param {string} keyword Search keyword to clean. * @returns {string} Cleaned string. */ phpbb.search.cleanKeyword = function(keyword) { return $.trim(keyword).toLowerCase(); }; /** * Get clean version of search keyword. If textarea supports several keywords * (one per line), it fetches the current keyword based on the caret position. * * @param {jQuery} $input Search input|textarea. * @param {string} keyword Input|textarea value. * @param {bool} multiline Whether textarea supports multiple search keywords. * * @returns string Clean string. */ phpbb.search.getKeyword = function($input, keyword, multiline) { if (multiline) { var line = phpbb.search.getKeywordLine($input); keyword = keyword.split('\n').splice(line, 1); } return phpbb.search.cleanKeyword(keyword); }; /** * Get the textarea line number on which the keyword resides - for textareas * that support multiple keywords (one per line). * * @param {jQuery} $textarea Search textarea. * @returns {int} The line number. */ phpbb.search.getKeywordLine = function ($textarea) { var selectionStart = $textarea.get(0).selectionStart; return $textarea.val().substr(0, selectionStart).split('\n').length - 1; }; /** * Set the value on the input|textarea. If textarea supports multiple * keywords, only the active keyword is replaced. * * @param {jQuery} $input Search input|textarea. * @param {string} value Value to set. * @param {bool} multiline Whether textarea supports multiple search keywords. */ phpbb.search.setValue = function($input, value, multiline) { if (multiline) { var line = phpbb.search.getKeywordLine($input), lines = $input.val().split('\n'); lines[line] = value; value = lines.join('\n'); } $input.val(value); }; /** * Sets the onclick event to set the value on the input|textarea to the * selected search result. * * @param {jQuery} $input Search input|textarea. * @param {object} value Result object. * @param {jQuery} $row Result element. * @param {jQuery} $container jQuery object for the search container. */ phpbb.search.setValueOnClick = function($input, value, $row, $container) { $row.click(function() { phpbb.search.setValue($input, value.result, $input.attr('data-multiline')); phpbb.search.closeResults($input, $container); }); }; /** * Runs before the AJAX search request is sent and determines whether * there is a need to contact the server. If there are cached results * already, those are displayed instead. Executes the AJAX request function * itself due to the need to use a timeout to limit the number of requests. * * @param {Array} data Data to be sent to the server. * @param {object} event Onkeyup event object. * @param {function} sendRequest Function to execute AJAX request. * * @returns {boolean} Returns false. */ phpbb.search.filter = function(data, event, sendRequest) { var $this = $(this), dataName = ($this.attr('data-name') !== undefined) ? $this.attr('data-name') : $this.attr('name'), minLength = parseInt($this.attr('data-min-length'), 10), searchID = $this.attr('data-results'), keyword = phpbb.search.getKeyword($this, data[dataName], $this.attr('data-multiline')), cache = phpbb.search.cache.get(searchID), key = event.keyCode || event.which, proceed = true; data[dataName] = keyword; // No need to search if enter was pressed // for selecting a value from the results. if (key === keymap.ENTER) { return false; } if (cache.timeout) { clearTimeout(cache.timeout); } var timeout = setTimeout(function() { // Check min length and existence of cache. if (minLength > keyword.length) { proceed = false; } else if (cache.lastSearch) { // Has the keyword actually changed? if (cache.lastSearch === keyword) { proceed = false; } else { // Do we already have results for this? if (cache.results[keyword]) { var response = { keyword: keyword, results: cache.results[keyword] }; phpbb.search.handleResponse(response, $this, true); proceed = false; } // If the previous search didn't yield results and the string only had characters added to it, // then we won't bother sending a request. if (keyword.indexOf(cache.lastSearch) === 0 && cache.results[cache.lastSearch].length === 0) { phpbb.search.cache.set(searchID, 'lastSearch', keyword); phpbb.search.cache.setResults(searchID, keyword, []); proceed = false; } } } if (proceed) { sendRequest.call(this); } }, 350); phpbb.search.cache.set(searchID, 'timeout', timeout); return false; }; /** * Handle search result response. * * @param {object} res Data received from server. * @param {jQuery} $input Search input|textarea. * @param {bool} fromCache Whether the results are from the cache. * @param {function} callback Optional callback to run when assigning each search result. */ phpbb.search.handleResponse = function(res, $input, fromCache, callback) { if (typeof res !== 'object') { return; } var searchID = $input.attr('data-results'), $container = $(searchID); if (this.cache.get(searchID).callback) { callback = this.cache.get(searchID).callback; } else if (typeof callback === 'function') { this.cache.set(searchID, 'callback', callback); } if (!fromCache) { this.cache.setResults(searchID, res.keyword, res.results); } this.cache.set(searchID, 'lastSearch', res.keyword); this.showResults(res.results, $input, $container, callback); }; /** * Show search results. * * @param {Array} results Search results. * @param {jQuery} $input Search input|textarea. * @param {jQuery} $container Search results container element. * @param {function} callback Optional callback to run when assigning each search result. */ phpbb.search.showResults = function(results, $input, $container, callback) { var $resultContainer = $('.search-results', $container); this.clearResults($resultContainer); if (!results.length) { $container.hide(); return; } var searchID = $container.attr('id'), tpl, row; if (!this.tpl[searchID]) { tpl = $('.search-result-tpl', $container); this.tpl[searchID] = tpl.clone().removeClass('search-result-tpl'); tpl.remove(); } tpl = this.tpl[searchID]; $.each(results, function(i, item) { row = tpl.clone(); row.find('.search-result').html(item.display); if (typeof callback === 'function') { callback.call(this, $input, item, row, $container); } row.appendTo($resultContainer).show(); }); $container.show(); phpbb.search.navigateResults($input, $container, $resultContainer); }; /** * Clear search results. * * @param {jQuery} $container Search results container. */ phpbb.search.clearResults = function($container) { $container.children(':not(.search-result-tpl)').remove(); }; /** * Close search results. * * @param {jQuery} $input Search input|textarea. * @param {jQuery} $container Search results container. */ phpbb.search.closeResults = function($input, $container) { $input.off('.phpbb.search'); $container.hide(); }; /** * Navigate search results. * * @param {jQuery} $input Search input|textarea. * @param {jQuery} $container Search results container. * @param {jQuery} $resultContainer Search results list container. */ phpbb.search.navigateResults = function($input, $container, $resultContainer) { // Add a namespace to the event (.phpbb.search), // so it can be unbound specifically later on. // Rebind it, to ensure the event is 'dynamic'. $input.off('.phpbb.search'); $input.on('keydown.phpbb.search', function(event) { var key = event.keyCode || event.which, $active = $resultContainer.children('.active'); switch (key) { // Close the results case keymap.ESC: phpbb.search.closeResults($input, $container); break; // Set the value for the selected result case keymap.ENTER: if ($active.length) { var value = $active.find('.search-result > span').text(); phpbb.search.setValue($input, value, $input.attr('data-multiline')); } phpbb.search.closeResults($input, $container); // Do not submit the form event.preventDefault(); break; // Navigate the results case keymap.ARROW_DOWN: case keymap.ARROW_UP: var up = key === keymap.ARROW_UP, $children = $resultContainer.children(); if (!$active.length) { if (up) { $children.last().addClass('active'); } else { $children.first().addClass('active'); } } else if ($children.length > 1) { if (up) { if ($active.is(':first-child')) { $children.last().addClass('active'); } else { $active.prev().addClass('active'); } } else { if ($active.is(':last-child')) { $children.first().addClass('active'); } else { $active.next().addClass('active'); } } $active.removeClass('active'); } // Do not change cursor position in the input element event.preventDefault(); break; } }); }; $('#phpbb').click(function() { var $this = $(this); if (!$this.is('.live-search') && !$this.parents().is('.live-search')) { phpbb.search.closeResults($('input, textarea'), $('.live-search')); } }); phpbb.history = {}; /** * Check whether a method in the native history object is supported. * * @param {string} fn Method name. * @returns {bool} Returns true if the method is supported. */ phpbb.history.isSupported = function(fn) { return !(typeof history === 'undefined' || typeof history[fn] === 'undefined'); }; /** * Wrapper for the pushState and replaceState methods of the * native history object. * * @param {string} mode Mode. Either push or replace. * @param {string} url New URL. * @param {string} [title] Optional page title. * @param {object} [obj] Optional state object. */ phpbb.history.alterUrl = function(mode, url, title, obj) { var fn = mode + 'State'; if (!url || !phpbb.history.isSupported(fn)) { return; } if (!title) { title = document.title; } if (!obj) { obj = null; } history[fn](obj, title, url); }; /** * Wrapper for the native history.replaceState method. * * @param {string} url New URL. * @param {string} [title] Optional page title. * @param {object} [obj] Optional state object. */ phpbb.history.replaceUrl = function(url, title, obj) { phpbb.history.alterUrl('replace', url, title, obj); }; /** * Wrapper for the native history.pushState method. * * @param {string} url New URL. * @param {string} [title] Optional page title. * @param {object} [obj] Optional state object. */ phpbb.history.pushUrl = function(url, title, obj) { phpbb.history.alterUrl('push', url, title, obj); }; /** * Hide the optgroups that are not the selected timezone * * @param {bool} keepSelection Shall we keep the value selected, or shall the * user be forced to repick one. */ phpbb.timezoneSwitchDate = function(keepSelection) { var $timezoneCopy = $('#timezone_copy'); var $timezone = $('#timezone'); var $tzDate = $('#tz_date'); var $tzSelectDateSuggest = $('#tz_select_date_suggest'); if ($timezoneCopy.length === 0) { // We make a backup of the original dropdown, so we can remove optgroups // instead of setting display to none, because IE and chrome will not // hide options inside of optgroups and selects via css $timezone.clone() .attr('id', 'timezone_copy') .css('display', 'none') .attr('name', 'tz_copy') .insertAfter('#timezone'); } else { // Copy the content of our backup, so we can remove all unneeded options $timezone.html($timezoneCopy.html()); } if ($tzDate.val() !== '') { $timezone.children('optgroup').remove(':not([data-tz-value="' + $tzDate.val() + '"])'); } if ($tzDate.val() === $tzSelectDateSuggest.attr('data-suggested-tz')) { $tzSelectDateSuggest.css('display', 'none'); } else { $tzSelectDateSuggest.css('display', 'inline'); } var $tzOptions = $timezone.children('optgroup[data-tz-value="' + $tzDate.val() + '"]').children('option'); if ($tzOptions.length === 1) { // If there is only one timezone for the selected date, we just select that automatically. $tzOptions.prop('selected', true); keepSelection = true; } if (typeof keepSelection !== 'undefined' && !keepSelection) { var $timezoneOptions = $timezone.find('optgroup option'); if ($timezoneOptions.filter(':selected').length <= 0) { $timezoneOptions.filter(':first').prop('selected', true); } } }; /** * Display the date/time select */ phpbb.timezoneEnableDateSelection = function() { $('#tz_select_date').css('display', 'block'); }; /** * Preselect a date/time or suggest one, if it is not picked. * * @param {bool} forceSelector Shall we select the suggestion? */ phpbb.timezonePreselectSelect = function(forceSelector) { // The offset returned here is in minutes and negated. var offset = (new Date()).getTimezoneOffset(); var sign = '-'; if (offset < 0) { sign = '+'; offset = -offset; } var minutes = offset % 60; var hours = (offset - minutes) / 60; if (hours < 10) { hours = '0' + hours.toString(); } else { hours = hours.toString(); } if (minutes < 10) { minutes = '0' + minutes.toString(); } else { minutes = minutes.toString(); } var prefix = 'UTC' + sign + hours + ':' + minutes; var prefixLength = prefix.length; var selectorOptions = $('option', '#tz_date'); var i; var $tzSelectDateSuggest = $('#tz_select_date_suggest'); for (i = 0; i < selectorOptions.length; ++i) { var option = selectorOptions[i]; if (option.value.substring(0, prefixLength) === prefix) { if ($('#tz_date').val() !== option.value && !forceSelector) { // We do not select the option for the user, but notify him, // that we would suggest a different setting. phpbb.timezoneSwitchDate(true); $tzSelectDateSuggest.css('display', 'inline'); } else { option.selected = true; phpbb.timezoneSwitchDate(!forceSelector); $tzSelectDateSuggest.css('display', 'none'); } var suggestion = $tzSelectDateSuggest.attr('data-l-suggestion'); $tzSelectDateSuggest.attr('title', suggestion.replace('%s', option.innerHTML)); $tzSelectDateSuggest.attr('value', suggestion.replace('%s', option.innerHTML.substring(0, 9))); $tzSelectDateSuggest.attr('data-suggested-tz', option.innerHTML); // Found the suggestion, there cannot be more, so return from here. return; } } }; phpbb.ajaxCallbacks = {}; /** * Adds an AJAX callback to be used by phpbb.ajaxify. * * See the phpbb.ajaxify comments for information on stuff like parameters. * * @param {string} id The name of the callback. * @param {function} callback The callback to be called. */ phpbb.addAjaxCallback = function(id, callback) { if (typeof callback === 'function') { phpbb.ajaxCallbacks[id] = callback; } return this; }; /** * This callback handles live member searches. */ phpbb.addAjaxCallback('member_search', function(res) { phpbb.search.handleResponse(res, $(this), false, phpbb.getFunctionByName('phpbb.search.setValueOnClick')); }); /** * This callback alternates text - it replaces the current text with the text in * the alt-text data attribute, and replaces the text in the attribute with the * current text so that the process can be repeated. */ phpbb.addAjaxCallback('alt_text', function() { var $anchor, updateAll = $(this).data('update-all'), altText; if (updateAll !== undefined && updateAll.length) { $anchor = $(updateAll); } else { $anchor = $(this); } $anchor.each(function() { var $this = $(this); altText = $this.attr('data-alt-text'); $this.attr('data-alt-text', $.trim($this.text())); $this.attr('title', altText); $this.children('span').text(altText); }); }); /** * This callback is based on the alt_text callback. * * It replaces the current text with the text in the alt-text data attribute, * and replaces the text in the attribute with the current text so that the * process can be repeated. * Additionally it replaces the class of the link's parent * and changes the link itself. */ phpbb.addAjaxCallback('toggle_link', function() { var $anchor, updateAll = $(this).data('update-all') , toggleText, toggleUrl, toggleClass; if (updateAll !== undefined && updateAll.length) { $anchor = $(updateAll); } else { $anchor = $(this); } $anchor.each(function() { var $this = $(this); // Toggle link url toggleUrl = $this.attr('data-toggle-url'); $this.attr('data-toggle-url', $this.attr('href')); $this.attr('href', toggleUrl); // Toggle class of link parent toggleClass = $this.attr('data-toggle-class'); $this.attr('data-toggle-class', $this.children().attr('class')); $this.children('.icon').attr('class', toggleClass); // Toggle link text toggleText = $this.attr('data-toggle-text'); $this.attr('data-toggle-text', $this.children('span').text()); $this.attr('title', $.trim(toggleText)); $this.children('span').text(toggleText); }); }); /** * Automatically resize textarea * * This function automatically resizes textarea elements when user * types text. * * @param {jQuery} $items jQuery object(s) to resize * @param {object} [options] Optional parameter that adjusts default * configuration. See configuration variable * * Optional parameters: * minWindowHeight {number} Minimum browser window height when textareas are resized. Default = 500 * minHeight {number} Minimum height of textarea. Default = 200 * maxHeight {number} Maximum height of textarea. Default = 500 * heightDiff {number} Minimum difference between window and textarea height. Default = 200 * resizeCallback {function} Function to call after resizing textarea * resetCallback {function} Function to call when resize has been canceled * Callback function format: function(item) {} * this points to DOM object * item is a jQuery object, same as this */ phpbb.resizeTextArea = function($items, options) { // Configuration var configuration = { minWindowHeight: 500, minHeight: 200, maxHeight: 500, heightDiff: 200, resizeCallback: function() {}, resetCallback: function() {} }; if (phpbb.isTouch) { return; } if (arguments.length > 1) { configuration = $.extend(configuration, options); } function resetAutoResize(item) { var $item = $(item); if ($item.hasClass('auto-resized')) { $(item) .css({ height: '', resize: '' }) .removeClass('auto-resized'); configuration.resetCallback.call(item, $item); } } function autoResize(item) { function setHeight(height) { height += parseInt($item.css('height'), 10) - $item.innerHeight(); $item .css({ height: height + 'px', resize: 'none' }) .addClass('auto-resized'); configuration.resizeCallback.call(item, $item); } var windowHeight = $(window).height(); if (windowHeight < configuration.minWindowHeight) { resetAutoResize(item); return; } var maxHeight = Math.min( Math.max(windowHeight - configuration.heightDiff, configuration.minHeight), configuration.maxHeight ), $item = $(item), height = parseInt($item.innerHeight(), 10), scrollHeight = (item.scrollHeight) ? item.scrollHeight : 0; if (height < 0) { return; } if (height > maxHeight) { setHeight(maxHeight); } else if (scrollHeight > (height + 5)) { setHeight(Math.min(maxHeight, scrollHeight)); } } $items.on('focus change keyup', function() { $(this).each(function() { autoResize(this); }); }).change(); $(window).resize(function() { $items.each(function() { if ($(this).hasClass('auto-resized')) { autoResize(this); } }); }); }; /** * Check if cursor in textarea is currently inside a bbcode tag * * @param {object} textarea Textarea DOM object * @param {Array} startTags List of start tags to look for * For example, Array('[code]', '[code=') * @param {Array} endTags List of end tags to look for * For example, Array('[/code]') * * @returns {boolean} True if cursor is in bbcode tag */ phpbb.inBBCodeTag = function(textarea, startTags, endTags) { var start = textarea.selectionStart, lastEnd = -1, lastStart = -1, i, index, value; if (typeof start !== 'number') { return false; } value = textarea.value.toLowerCase(); for (i = 0; i < startTags.length; i++) { var tagLength = startTags[i].length; if (start >= tagLength) { index = value.lastIndexOf(startTags[i], start - tagLength); lastStart = Math.max(lastStart, index); } } if (lastStart === -1) { return false; } if (start > 0) { for (i = 0; i < endTags.length; i++) { index = value.lastIndexOf(endTags[i], start - 1); lastEnd = Math.max(lastEnd, index); } } return (lastEnd < lastStart); }; /** * Adjust textarea to manage code bbcode * * This function allows to use tab characters when typing code * and keeps indentation of previous line of code when adding new * line while typing code. * * Editor's functionality is changed only when cursor is between * [code] and [/code] bbcode tags. * * @param {object} textarea Textarea DOM object to apply editor to */ phpbb.applyCodeEditor = function(textarea) { // list of allowed start and end bbcode code tags, in lower case var startTags = ['[code]', '[code='], startTagsEnd = ']', endTags = ['[/code]']; if (!textarea || typeof textarea.selectionStart !== 'number') { return; } if ($(textarea).data('code-editor') === true) { return; } function inTag() { return phpbb.inBBCodeTag(textarea, startTags, endTags); } /** * Get line of text before cursor * * @param {boolean} stripCodeStart If true, only part of line * after [code] tag will be returned. * * @returns {string} Line of text */ function getLastLine(stripCodeStart) { var start = textarea.selectionStart, value = textarea.value, index = value.lastIndexOf('\n', start - 1); value = value.substring(index + 1, start); if (stripCodeStart) { for (var i = 0; i < startTags.length; i++) { index = value.lastIndexOf(startTags[i]); if (index >= 0) { var tagLength = startTags[i].length; value = value.substring(index + tagLength); if (startTags[i].lastIndexOf(startTagsEnd) !== tagLength) { index = value.indexOf(startTagsEnd); if (index >= 0) { value = value.substr(index + 1); } } } } } return value; } /** * Append text at cursor position * * @param {string} text Text to append */ function appendText(text) { var start = textarea.selectionStart, end = textarea.selectionEnd, value = textarea.value; textarea.value = value.substr(0, start) + text + value.substr(end); textarea.selectionStart = textarea.selectionEnd = start + text.length; } $(textarea).data('code-editor', true).on('keydown', function(event) { var key = event.keyCode || event.which; // intercept tabs if (key === keymap.TAB && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) { if (inTag()) { appendText('\t'); event.preventDefault(); return; } } // intercept new line characters if (key === keymap.ENTER) { if (inTag()) { var lastLine = getLastLine(true), code = '' + /^\s*/g.exec(lastLine); if (code.length > 0) { appendText('\n' + code); event.preventDefault(); } } } }); }; /** * Show drag and drop animation when textarea is present * * This function will enable the drag and drop animation for a specified * textarea. * * @param {HTMLElement} textarea Textarea DOM object to apply editor to */ phpbb.showDragNDrop = function(textarea) { if (!textarea) { return; } $('body').on('dragenter dragover', function () { $(textarea).addClass('drag-n-drop'); }).on('dragleave dragout dragend drop', function() { $(textarea).removeClass('drag-n-drop'); }); $(textarea).on('dragenter dragover', function () { $(textarea).addClass('drag-n-drop-highlight'); }).on('dragleave dragout dragend drop', function() { $(textarea).removeClass('drag-n-drop-highlight'); }); }; /** * List of classes that toggle dropdown menu, * list of classes that contain visible dropdown menu * * Add your own classes to strings with comma (probably you * will never need to do that) */ phpbb.dropdownHandles = '.dropdown-container.dropdown-visible .dropdown-toggle'; phpbb.dropdownVisibleContainers = '.dropdown-container.dropdown-visible'; /** * Dropdown toggle event handler * This handler is used by phpBB.registerDropdown() and other functions */ phpbb.toggleDropdown = function() { var $this = $(this), options = $this.data('dropdown-options'), parent = options.parent, visible = parent.hasClass('dropdown-visible'), direction; if (!visible) { // Hide other dropdown menus $(phpbb.dropdownHandles).each(phpbb.toggleDropdown); // Figure out direction of dropdown direction = options.direction; var verticalDirection = options.verticalDirection, offset = $this.offset(); if (direction === 'auto') { if (($(window).width() - $this.outerWidth(true)) / 2 > offset.left) { direction = 'right'; } else { direction = 'left'; } } parent.toggleClass(options.leftClass, direction === 'left') .toggleClass(options.rightClass, direction === 'right'); if (verticalDirection === 'auto') { var height = $(window).height(), top = offset.top - $(window).scrollTop(); verticalDirection = (top < height * 0.7) ? 'down' : 'up'; } parent.toggleClass(options.upClass, verticalDirection === 'up') .toggleClass(options.downClass, verticalDirection === 'down'); } options.dropdown.toggle(); parent.toggleClass(options.visibleClass, !visible) .toggleClass('dropdown-visible', !visible); // Check dimensions when showing dropdown // !visible because variable shows state of dropdown before it was toggled if (!visible) { var windowWidth = $(window).width(); options.dropdown.find('.dropdown-contents').each(function() { var $this = $(this); $this.css({ marginLeft: 0, left: 0, marginRight: 0, maxWidth: (windowWidth - 4) + 'px' }); var offset = $this.offset().left, width = $this.outerWidth(true); if (offset < 2) { $this.css('left', (2 - offset) + 'px'); } else if ((offset + width + 2) > windowWidth) { $this.css('margin-left', (windowWidth - offset - width - 2) + 'px'); } // Check whether the vertical scrollbar is present. $this.toggleClass('dropdown-nonscroll', this.scrollHeight === $this.innerHeight()); }); var freeSpace = parent.offset().left - 4; if (direction === 'left') { options.dropdown.css('margin-left', '-' + freeSpace + 'px'); // Try to position the notification dropdown correctly in RTL-responsive mode if (options.dropdown.hasClass('dropdown-extended')) { var contentWidth, fullFreeSpace = freeSpace + parent.outerWidth(); options.dropdown.find('.dropdown-contents').each(function() { contentWidth = parseInt($(this).outerWidth(), 10); $(this).css({ marginLeft: 0, left: 0 }); }); var maxOffset = Math.min(contentWidth, fullFreeSpace) + 'px'; options.dropdown.css({ width: maxOffset, marginLeft: -maxOffset }); } } else { options.dropdown.css('margin-right', '-' + (windowWidth + freeSpace) + 'px'); } } // Prevent event propagation if (arguments.length > 0) { try { var e = arguments[0]; e.preventDefault(); e.stopPropagation(); } catch (error) { } } return false; }; /** * Toggle dropdown submenu */ phpbb.toggleSubmenu = function(e) { $(this).siblings('.dropdown-submenu').toggle(); e.preventDefault(); }; /** * Register dropdown menu * Shows/hides dropdown, decides which side to open to * * @param {jQuery} toggle Link that toggles dropdown. * @param {jQuery} dropdown Dropdown menu. * @param {Object} options List of options. Optional. */ phpbb.registerDropdown = function(toggle, dropdown, options) { var ops = { parent: toggle.parent(), // Parent item to add classes to direction: 'auto', // Direction of dropdown menu. Possible values: auto, left, right verticalDirection: 'auto', // Vertical direction. Possible values: auto, up, down visibleClass: 'visible', // Class to add to parent item when dropdown is visible leftClass: 'dropdown-left', // Class to add to parent item when dropdown opens to left side rightClass: 'dropdown-right', // Class to add to parent item when dropdown opens to right side upClass: 'dropdown-up', // Class to add to parent item when dropdown opens above menu item downClass: 'dropdown-down' // Class to add to parent item when dropdown opens below menu item }; if (options) { ops = $.extend(ops, options); } ops.dropdown = dropdown; ops.parent.addClass('dropdown-container'); toggle.addClass('dropdown-toggle'); toggle.data('dropdown-options', ops); toggle.click(phpbb.toggleDropdown); $('.dropdown-toggle-submenu', ops.parent).click(phpbb.toggleSubmenu); }; /** * Get the HTML for a color palette table. * * @param {string} dir Palette direction - either v or h * @param {int} width Palette cell width. * @param {int} height Palette cell height. */ phpbb.colorPalette = function(dir, width, height) { var r, g, b, numberList = new Array(6), color = '', html = ''; numberList[0] = '00'; numberList[1] = '40'; numberList[2] = '80'; numberList[3] = 'BF'; numberList[4] = 'FF'; var tableClass = (dir === 'h') ? 'horizontal-palette' : 'vertical-palette'; html += ''; for (r = 0; r < 5; r++) { if (dir === 'h') { html += ''; } for (g = 0; g < 5; g++) { if (dir === 'v') { html += ''; } for (b = 0; b < 5; b++) { color = '' + numberList[r] + numberList[g] + numberList[b]; html += ''; } if (dir === 'v') { html += ''; } } if (dir === 'h') { html += ''; } } html += '
    '; html += '
    '; return html; }; /** * Register a color palette. * * @param {jQuery} el jQuery object for the palette container. */ phpbb.registerPalette = function(el) { var orientation = el.attr('data-color-palette') || el.attr('data-orientation'), // data-orientation kept for backwards compat. height = el.attr('data-height'), width = el.attr('data-width'), target = el.attr('data-target'), bbcode = el.attr('data-bbcode'); // Insert the palette HTML into the container. el.html(phpbb.colorPalette(orientation, width, height)); // Add toggle control. $('#color_palette_toggle').click(function(e) { el.toggle(); e.preventDefault(); }); // Attach event handler when a palette cell is clicked. $(el).on('click', 'a', function(e) { var color = $(this).attr('data-color'); if (bbcode) { bbfontstyle('[color=#' + color + ']', '[/color]'); } else { $(target).val(color); } e.preventDefault(); }); }; /** * Set display of page element * * @param {string} id The ID of the element to change * @param {int} action Set to 0 if element display should be toggled, -1 for * hiding the element, and 1 for showing it. * @param {string} type Display type that should be used, e.g. inline, block or * other CSS "display" types */ phpbb.toggleDisplay = function(id, action, type) { if (!type) { type = 'block'; } var $element = $('#' + id); var display = $element.css('display'); if (!action) { action = (display === '' || display === type) ? -1 : 1; } $element.css('display', ((action === 1) ? type : 'none')); }; /** * Toggle additional settings based on the selected * option of select element. * * @param {jQuery} el jQuery select element object. */ phpbb.toggleSelectSettings = function(el) { el.children().each(function() { var $this = $(this), $setting = $($this.data('toggle-setting')); $setting.toggle($this.is(':selected')); // Disable any input elements that are not visible right now if ($this.is(':selected')) { $($this.data('toggle-setting') + ' input').prop('disabled', false); } else { $($this.data('toggle-setting') + ' input').prop('disabled', true); } }); }; /** * Get function from name. * Based on http://stackoverflow.com/a/359910 * * @param {string} functionName Function to get. * @returns function */ phpbb.getFunctionByName = function (functionName) { var namespaces = functionName.split('.'), func = namespaces.pop(), context = window; for (var i = 0; i < namespaces.length; i++) { context = context[namespaces[i]]; } return context[func]; }; /** * Register page dropdowns. */ phpbb.registerPageDropdowns = function() { var $body = $('body'); $body.find('.dropdown-container').each(function() { var $this = $(this), $trigger = $this.find('.dropdown-trigger:first'), $contents = $this.find('.dropdown'), options = { direction: 'auto', verticalDirection: 'auto' }, data; if (!$trigger.length) { data = $this.attr('data-dropdown-trigger'); $trigger = data ? $this.children(data) : $this.children('a:first'); } if (!$contents.length) { data = $this.attr('data-dropdown-contents'); $contents = data ? $this.children(data) : $this.children('div:first'); } if (!$trigger.length || !$contents.length) { return; } if ($this.hasClass('dropdown-up')) { options.verticalDirection = 'up'; } if ($this.hasClass('dropdown-down')) { options.verticalDirection = 'down'; } if ($this.hasClass('dropdown-left')) { options.direction = 'left'; } if ($this.hasClass('dropdown-right')) { options.direction = 'right'; } phpbb.registerDropdown($trigger, $contents, options); }); // Hide active dropdowns when click event happens outside $body.click(function(e) { var $parents = $(e.target).parents(); if (!$parents.is(phpbb.dropdownVisibleContainers)) { $(phpbb.dropdownHandles).each(phpbb.toggleDropdown); } }); }; /** * Handle avatars to be lazy loaded. */ phpbb.lazyLoadAvatars = function loadAvatars() { $('.avatar[data-src]').each(function () { var $avatar = $(this); $avatar .attr('src', $avatar.data('src')) .removeAttr('data-src'); }); }; var recaptchaForm = $('.g-recaptcha').parents('form'); var submitButton = null; var programaticallySubmitted = false; phpbb.recaptchaOnLoad = function () { // Listen to submit buttons in order to know which one was pressed $('input[type="submit"]').each(function () { $(this).on('click', function () { submitButton = this; }); }); recaptchaForm.on('submit', function (e) { if (!programaticallySubmitted) { grecaptcha.execute(); e.preventDefault(); } }); } phpbb.recaptchaOnSubmit = function () { programaticallySubmitted = true; // If concrete button was clicked (e.g. preview instead of submit), // let's trigger the same action if (submitButton) { submitButton.click(); } else { // Rename input[name="submit"] so that we can submit the form if (typeof recaptchaForm.submit !== 'function') { recaptchaForm.submit.name = 'submit_btn'; } recaptchaForm.submit(); } } // reCAPTCHA doesn't accept callback functions nested inside objects // so we need to make this helper functions here window.phpbbRecaptchaOnLoad = function() { phpbb.recaptchaOnLoad(); } window.phpbbRecaptchaOnSubmit = function() { phpbb.recaptchaOnSubmit(); } $(window).on('load', phpbb.lazyLoadAvatars); /** * Apply code editor to all textarea elements with data-bbcode attribute */ $(function() { $('textarea[data-bbcode]').each(function() { phpbb.applyCodeEditor(this); }); phpbb.registerPageDropdowns(); $('[data-color-palette], [data-orientation]').each(function() { phpbb.registerPalette($(this)); }); // Update browser history URL to point to specific post in viewtopic.php // when using view=unread#unread link. phpbb.history.replaceUrl($('#unread[data-url]').data('url')); // Hide settings that are not selected via select element. $('select[data-togglable-settings]').each(function() { var $this = $(this); $this.change(function() { phpbb.toggleSelectSettings($this); }); phpbb.toggleSelectSettings($this); }); }); })(jQuery); // Avoid conflicts with other libraries templates/SwiftBlue/default.css0000755000000000000000000000372511500513576014021 0ustar /** * The default CSS stylesheet used for all templates. * * @package AutoIndex * @author Justin Hagstrom * @version 1.0.2 (February 05, 2004) * * @copyright Copyright (C) 2002-2004 Justin Hagstrom * @license http://www.gnu.org/licenses/gpl.html GNU General Public License (GPL) * * @link http://autoindex.sourceforge.net */ /* Body */ .autoindex_body, html { font-family: verdana, lucidia, sans-serif; font-size: 13px; background-color: #F0F0F0; } /* Images */ .autoindex_body img { border: none; } /* Tables */ .autoindex_table { width: 100%; border: none; border-spacing: 2px; } .light_row { background-color: #F2F6FC; font-size: 13px; } .dark_row { background-color: #DADEEE; font-size: 13px; } .autoindex_td { font-size: 13px; font-family: verdana, lucidia, sans-serif; vertical-align: top; border: 1px solid #7F8FA9; padding: 0px; text-align: left; white-space: nowrap; } .autoindex_td_right { font-size: 13px; font-family: verdana, lucidia, sans-serif; vertical-align: top; border: 1px solid #7F8FA9; padding: 0px; text-align: right; white-space: nowrap; } .autoindex_th { font-size: 13px; background-color: #7F8FAD; border: 1px solid #000010; padding: 0px; } /* Links */ .plain_link { color: #000000; text-decoration: none; } .autoindex_a:visited, .autoindex_a:active { color: #00008F; text-decoration: none; } .autoindex_a:link { color: #0000FF; text-decoration: none; } .autoindex_a:hover { color: #0000FF; text-decoration: overline underline; } /* Buttons */ .button { color: #707070; background-color: #F2F6FC; font-family: sans-serif; font-size: 11px; text-align: left; vertical-align: middle; font-weight: bold; cursor: pointer; border: none; padding: 3px 10px 3px 10px; } /* Misc. */ .paragraph { background: #F2F6FC; font-size: 13px; color: #000020; } .autoindex_hr { color: #000020; background-color: #000020; border: none; width: 75%; height: 1px; } .autoindex_small { font-size: 10px; }templates/SwiftBlue/documente.js0000755000000000000000000000115411500513576014176 0ustar var displaymode=0 var iframecode='' if (displaymode==0) document.write(iframecode) function gone(){ var selectedurl=document.jumpy.example.options[document.jumpy.example.selectedIndex].value if (document.getElementById&&displaymode==0) document.getElementById("external").src=selectedurl else if (document.all&&displaymode==0) document.all.external.src=selectedurl else{ if (!window.win2||win2.closed) win2=window.open(selectedurl) //else if win2 already exists else{ win2.location=selectedurl win2.focus() } } }templates/SwiftBlue/dynifs.js0000755000000000000000000000623111500513600013474 0ustar /*************************************************************\ * DYNIFS - Dynamic IFrame Auto Size v1.0.0 * * Copyright (C) 2006, Markus (phpMiX) * This script is released under GPL License. * Feel free to use this script (or part of it) wherever you need * it ...but please, give credit to original author. Thank you. :-) * We will also appreciate any links you could give us. * http://www.phpmix.org * * Enjoy! ;-) \*************************************************************/ var DYNIFS = { // Storage for known IFrames. iframes: {}, // Here we save any previously installed onresize handler. oldresize: null, // Flag that tell us if we have already installed our onresize handler. ready: false, // The document dimensions last time onresize was executed. dim: [-1,-1], // Timer ID used to defer the actual resize action. timerID: 0, // Obtain the dimensions (width,height) of the given document. getDim: function(d) { var w=480, h=580, scr_h, off_h; if( d.height ) { return [d.width,d.height]; } with( d.body ) { if( scrollHeight ) { h=scr_h=scrollHeight; w=scrollWidth; } if( offsetHeight ) { h=off_h=offsetHeight; w=offsetWidth; } if( scr_h && off_h ) h=Math.max(scr_h, off_h); } return [w,h]; }, // This is our window.onresize handler. onresize: function() { // Invoke any previously installed onresize handler. if( typeof this.oldresize == 'function' ) { this.oldresize(); } // Check if the document dimensions really changed. var dim = this.getDim(document); if( this.dim[0] == dim[0] && this.dim[1] == dim[1] ) return; // Defer the resize action to prevent endless loop in quirksmode. if( this.timerID ) return; this.timerID = setTimeout('DYNIFS.deferred_resize();', 10); }, // This is where the actual IFrame resize is invoked. deferred_resize: function() { // Walk the list of known IFrames to see if they need to be resized. for( var id in this.iframes ) this.resize(id); // Store resulting document dimensions. this.dim = this.getDim(document); // Clear the timer flag. this.timerID = 0; }, // This is invoked when the IFrame is loaded or when the main window is resized. resize: function(id) { // Browser compatibility check. if( !window.frames || !window.frames[id] || !document.getElementById || !document.body ) return; // Get references to the IFrame window and layer. var iframe = window.frames[id]; var div = document.getElementById(id); if( !div ) return; // Save the IFrame id for later use in our onresize handler. if( !this.iframes[id] ) { this.iframes[id] = true; } // Should we inject our onresize event handler? if( !this.ready ) { this.ready = true; this.oldresize = window.onresize; window.onresize = new Function('DYNIFS.onresize();'); } // This appears to be necessary in MSIE to compute the height // when the IFrame'd document is in quirksmode. // OTOH, it doesn't seem to break anything in standards mode, so... if( document.all ) div.style.height = '0px'; // Resize the IFrame container. var dim = this.getDim(iframe.document); div.style.height = (dim[1]+30) + 'px'; } };templates/SwiftBlue/each_file.tpl0000755000000000000000000000222414542335616014302 0ustar
    {file:if:is_file} /* if it is a file, make a direct link */ {end if} {file:if:is_dir} /* otherwise, for directories, display the folder with autoindex */ {end if} {if:icon_path}[{file:file_ext}]{end if:icon_path} {file:filename} {file:thumbnail}{file:new_icon}{file:md5_link}{file:delete_link}{file:rename_link}{file:edit_description_link}{file:ftp_upload_link} {file:downloads} {file:size} {file:date} {file:description}
     
    {ERROR_MESSAGE}
     

    templates/SwiftBlue/formIE.css0000755000000000000000000000056511454362734013563 0ustar /* Fancy form styles for IE */ input, textarea, select { border-top-width : 1px; border-right-width : 1px; border-bottom-width : 1px; border-left-width : 1px; } input { text-indent : 2px; } input.button { border-top-width : 1px; border-right-width : 1px; border-bottom-width : 1px; border-left-width : 1px; } .postbody { line-height: 18px} templates/SwiftBlue/forum_fn.js0000755000000000000000000005742013366416654014050 0ustar /* global phpbb */ /** * phpBB3 forum functions */ /** * Find a member */ function find_username(url) { 'use strict'; popup(url, 760, 570, '_usersearch'); return false; } /** * Window popup */ function popup(url, width, height, name) { 'use strict'; if (!name) { name = '_popup'; } window.open(url.replace(/&/g, '&'), name, 'height=' + height + ',resizable=yes,scrollbars=yes, width=' + width); return false; } /** * Jump to page */ function pageJump(item) { 'use strict'; var page = parseInt(item.val(), 10), perPage = item.attr('data-per-page'), baseUrl = item.attr('data-base-url'), startName = item.attr('data-start-name'); if (page !== null && !isNaN(page) && page === Math.floor(page) && page > 0) { if (baseUrl.indexOf('?') === -1) { document.location.href = baseUrl + '?' + startName + '=' + ((page - 1) * perPage); } else { document.location.href = baseUrl.replace(/&/g, '&') + '&' + startName + '=' + ((page - 1) * perPage); } } } /** * Mark/unmark checklist * id = ID of parent container, name = name prefix, state = state [true/false] */ function marklist(id, name, state) { 'use strict'; jQuery('#' + id + ' input[type=checkbox][name]').each(function() { var $this = jQuery(this); if ($this.attr('name').substr(0, name.length) === name && !$this.prop('disabled')) { $this.prop('checked', state); } }); } /** * Resize viewable area for attached image or topic review panel (possibly others to come) * e = element */ function viewableArea(e, itself) { 'use strict'; if (!e) { return; } if (!itself) { e = e.parentNode; } if (!e.vaHeight) { // Store viewable area height before changing style to auto e.vaHeight = e.offsetHeight; e.vaMaxHeight = e.style.maxHeight; e.style.height = 'auto'; e.style.maxHeight = 'none'; e.style.overflow = 'visible'; } else { // Restore viewable area height to the default e.style.height = e.vaHeight + 'px'; e.style.overflow = 'auto'; e.style.maxHeight = e.vaMaxHeight; e.vaHeight = false; } } /** * Alternate display of subPanels */ jQuery(function($) { 'use strict'; $('.sub-panels').each(function() { var $childNodes = $('a[data-subpanel]', this), panels = $childNodes.map(function () { return this.getAttribute('data-subpanel'); }), showPanel = this.getAttribute('data-show-panel'); if (panels.length) { activateSubPanel(showPanel, panels); $childNodes.click(function () { activateSubPanel(this.getAttribute('data-subpanel'), panels); return false; }); } }); }); /** * Activate specific subPanel */ function activateSubPanel(p, panels) { 'use strict'; var i, showPanel; if (typeof p === 'string') { showPanel = p; } $('input[name="show_panel"]').val(showPanel); if (typeof panels === 'undefined') { panels = jQuery('.sub-panels a[data-subpanel]').map(function() { return this.getAttribute('data-subpanel'); }); } for (i = 0; i < panels.length; i++) { jQuery('#' + panels[i]).css('display', panels[i] === showPanel ? 'block' : 'none'); jQuery('#' + panels[i] + '-tab').toggleClass('activetab', panels[i] === showPanel); } } function selectCode(a) { 'use strict'; // Get ID of code block var e = a.parentNode.parentNode.getElementsByTagName('CODE')[0]; var s, r; // Not IE and IE9+ if (window.getSelection) { s = window.getSelection(); // Safari and Chrome if (s.setBaseAndExtent) { var l = (e.innerText.length > 1) ? e.innerText.length - 1 : 1; try { s.setBaseAndExtent(e, 0, e, l); } catch (error) { r = document.createRange(); r.selectNodeContents(e); s.removeAllRanges(); s.addRange(r); } } // Firefox and Opera else { // workaround for bug # 42885 if (window.opera && e.innerHTML.substring(e.innerHTML.length - 4) === '
    ') { e.innerHTML = e.innerHTML + ' '; } r = document.createRange(); r.selectNodeContents(e); s.removeAllRanges(); s.addRange(r); } } // Some older browsers else if (document.getSelection) { s = document.getSelection(); r = document.createRange(); r.selectNodeContents(e); s.removeAllRanges(); s.addRange(r); } // IE else if (document.selection) { r = document.body.createTextRange(); r.moveToElementText(e); r.select(); } } var inAutocomplete = false; var lastKeyEntered = ''; /** * Check event key */ function phpbbCheckKey(event) { 'use strict'; // Keycode is array down or up? if (event.keyCode && (event.keyCode === 40 || event.keyCode === 38)) { inAutocomplete = true; } // Make sure we are not within an "autocompletion" field if (inAutocomplete) { // If return pressed and key changed we reset the autocompletion if (!lastKeyEntered || lastKeyEntered === event.which) { inAutocomplete = false; return true; } } // Keycode is not return, then return. ;) if (event.which !== 13) { lastKeyEntered = event.which; return true; } return false; } /** * Apply onkeypress event for forcing default submit button on ENTER key press */ jQuery(function($) { 'use strict'; $('form input[type=text], form input[type=password]').on('keypress', function (e) { var defaultButton = $(this).parents('form').find('input[type=submit].default-submit-action'); if (!defaultButton || defaultButton.length <= 0) { return true; } if (phpbbCheckKey(e)) { return true; } if ((e.which && e.which === 13) || (e.keyCode && e.keyCode === 13)) { defaultButton.click(); return false; } return true; }); }); /** * Functions for user search popup */ function insertUser(formId, value) { 'use strict'; var $form = jQuery(formId), formName = $form.attr('data-form-name'), fieldName = $form.attr('data-field-name'), item = opener.document.forms[formName][fieldName]; if (item.value.length && item.type === 'textarea') { value = item.value + '\n' + value; } item.value = value; } function insert_marked_users(formId, users) { 'use strict'; $(users).filter(':checked').each(function() { insertUser(formId, this.value); }); window.close(); } function insert_single_user(formId, user) { 'use strict'; insertUser(formId, user); window.close(); } /** * Parse document block */ function parseDocument($container) { 'use strict'; var test = document.createElement('div'), oldBrowser = (typeof test.style.borderRadius === 'undefined'), $body = $('body'); /** * Reset avatar dimensions when changing URL or EMAIL */ $container.find('input[data-reset-on-edit]').on('keyup', function() { $(this.getAttribute('data-reset-on-edit')).val(''); }); /** * Pagination */ $container.find('.pagination .page-jump-form :button').click(function() { var $input = $(this).siblings('input.inputbox'); pageJump($input); }); $container.find('.pagination .page-jump-form input.inputbox').on('keypress', function(event) { if (event.which === 13 || event.keyCode === 13) { event.preventDefault(); pageJump($(this)); } }); $container.find('.pagination .dropdown-trigger').click(function() { var $dropdownContainer = $(this).parent(); // Wait a little bit to make sure the dropdown has activated setTimeout(function() { if ($dropdownContainer.hasClass('dropdown-visible')) { $dropdownContainer.find('input.inputbox').focus(); } }, 100); }); /** * Adjust HTML code for IE8 and older versions */ // if (oldBrowser) { // // Fix .linklist.bulletin lists // $container // .find('ul.linklist.bulletin > li') // .filter(':first-child, .rightside:last-child') // .addClass('no-bulletin'); // } /** * Resize navigation (breadcrumbs) block to keep all links on same line */ $container.find('.navlinks').each(function() { var $this = $(this), $left = $this.children().not('.rightside'), $right = $this.children('.rightside'); if ($left.length !== 1 || !$right.length) { return; } function resize() { var width = 0, diff = $left.outerWidth(true) - $left.width(), minWidth = Math.max($this.width() / 3, 240), maxWidth; $right.each(function() { var $this = $(this); if ($this.is(':visible')) { width += $this.outerWidth(true); } }); maxWidth = $this.width() - width - diff; $left.css('max-width', Math.floor(Math.max(maxWidth, minWidth)) + 'px'); } resize(); $(window).resize(resize); }); /** * Makes breadcrumbs responsive */ $container.find('.breadcrumbs:not([data-skip-responsive])').each(function() { var $this = $(this), $links = $this.find('.crumb'), length = $links.length, classes = ['wrapped-max', 'wrapped-wide', 'wrapped-medium', 'wrapped-small', 'wrapped-tiny'], classesLength = classes.length, maxHeight = 0, lastWidth = false, wrapped = false; // Set tooltips $this.find('a').each(function() { var $link = $(this); $link.attr('title', $link.text()); }); // Function that checks breadcrumbs function check() { var height = $this.height(), width; // Test max-width set in code for .navlinks above width = parseInt($this.css('max-width'), 10); if (!width) { width = $body.width(); } maxHeight = parseInt($this.css('line-height'), 10); $links.each(function() { if ($(this).height() > 0) { maxHeight = Math.max(maxHeight, $(this).outerHeight(true)); } }); if (height <= maxHeight) { if (!wrapped || lastWidth === false || lastWidth >= width) { return; } } lastWidth = width; if (wrapped) { $this.removeClass('wrapped').find('.crumb.wrapped').removeClass('wrapped ' + classes.join(' ')); if ($this.height() <= maxHeight) { return; } } wrapped = true; $this.addClass('wrapped'); if ($this.height() <= maxHeight) { return; } for (var i = 0; i < classesLength; i++) { for (var j = length - 1; j >= 0; j--) { $links.eq(j).addClass('wrapped ' + classes[i]); if ($this.height() <= maxHeight) { return; } } } } // Run function and set event check(); $(window).resize(check); }); /** * Responsive link lists */ var selector = '.linklist:not(.navlinks, [data-skip-responsive]),' + '.postbody .post-buttons:not([data-skip-responsive])'; $container.find(selector).each(function() { var $this = $(this), filterSkip = '.breadcrumbs, [data-skip-responsive]', filterLast = '.edit-icon, .quote-icon, [data-last-responsive]', $linksAll = $this.children(), $linksNotSkip = $linksAll.not(filterSkip), // All items that can potentially be hidden $linksFirst = $linksNotSkip.not(filterLast), // The items that will be hidden first $linksLast = $linksNotSkip.filter(filterLast), // The items that will be hidden last persistent = $this.attr('id') === 'nav-main', // Does this list already have a menu (such as quick-links)? html = '
  • ', slack = 3; // Vertical slack space (in pixels). Determines how sensitive the script is in determining whether a line-break has occurred. // Add a hidden drop-down menu to each links list (except those that already have one) if (!persistent) { if ($linksNotSkip.is('.rightside')) { $linksNotSkip.filter('.rightside:first').before(html); $this.children('.responsive-menu').addClass('rightside'); } else { $this.append(html); } } // Set some object references and initial states var $menu = $this.children('.responsive-menu'), $menuContents = $menu.find('.dropdown-contents'), persistentContent = $menuContents.find('li:not(.separator)').length, lastWidth = false, compact = false, responsive1 = false, responsive2 = false, copied1 = false, copied2 = false, maxHeight = 0; // Find the tallest element in the list (we assume that all elements are roughly the same height) $linksAll.each(function() { if (!$(this).height()) { return; } maxHeight = Math.max(maxHeight, $(this).outerHeight(true)); }); if (maxHeight < 1) { return; // Shouldn't be possible, but just in case, abort } else { maxHeight = maxHeight + slack; } function check() { var width = $body.width(); // We can't make it any smaller than this, so just skip if (responsive2 && compact && (width <= lastWidth)) { return; } lastWidth = width; // Reset responsive and compact layout if (responsive1 || responsive2) { $linksNotSkip.removeClass('hidden'); $menuContents.children('.clone').addClass('hidden'); responsive1 = responsive2 = false; } if (compact) { $this.removeClass('compact'); compact = false; } // Unhide the quick-links menu if it has "persistent" content if (persistent && persistentContent) { $menu.removeClass('hidden'); } else { $menu.addClass('hidden'); } // Nothing to resize if block's height is not bigger than tallest element's height if ($this.height() <= maxHeight) { return; } // STEP 1: Compact if (!compact) { $this.addClass('compact'); compact = true; } if ($this.height() <= maxHeight) { return; } // STEP 2: First responsive set - compact if (compact) { $this.removeClass('compact'); compact = false; } // Copy the list items to the dropdown if (!copied1) { var $clones1 = $linksFirst.clone(); $menuContents.prepend($clones1.addClass('clone clone-first').removeClass('leftside rightside')); if ($this.hasClass('post-buttons')) { $('.button', $menuContents).removeClass('button'); $('.sr-only', $menuContents).removeClass('sr-only'); $('.js-responsive-menu-link').addClass('button').addClass('button-icon-only'); $('.js-responsive-menu-link .icon').removeClass('fa-bars').addClass('fa-ellipsis-h'); } copied1 = true; } if (!responsive1) { $linksFirst.addClass('hidden'); responsive1 = true; $menuContents.children('.clone-first').removeClass('hidden'); $menu.removeClass('hidden'); } if ($this.height() <= maxHeight) { return; } // STEP 3: First responsive set + compact if (!compact) { $this.addClass('compact'); compact = true; } if ($this.height() <= maxHeight) { return; } // STEP 4: Last responsive set - compact if (!$linksLast.length) { return; // No other links to hide, can't do more } if (compact) { $this.removeClass('compact'); compact = false; } // Copy the list items to the dropdown if (!copied2) { var $clones2 = $linksLast.clone(); $menuContents.prepend($clones2.addClass('clone clone-last').removeClass('leftside rightside')); copied2 = true; } if (!responsive2) { $linksLast.addClass('hidden'); responsive2 = true; $menuContents.children('.clone-last').removeClass('hidden'); } if ($this.height() <= maxHeight) { return; } // STEP 5: Last responsive set + compact if (!compact) { $this.addClass('compact'); compact = true; } } if (!persistent) { phpbb.registerDropdown($menu.find('a.js-responsive-menu-link'), $menu.find('.dropdown'), false); } // If there are any images in the links list, run the check again after they have loaded $linksAll.find('img').each(function() { $(this).on('load', function() { check(); }); }); check(); $(window).resize(check); }); /** * Do not run functions below for old browsers */ if (oldBrowser) { return; } /** * Adjust topiclist lists with check boxes */ $container.find('ul.topiclist dd.mark').siblings('dt').children('.list-inner').addClass('with-mark'); /** * Appends contents of all extra columns to first column in * .topiclist lists for mobile devices. Copies contents as is. * * To add that functionality to .topiclist list simply add * responsive-show-all to list of classes */ $container.find('.topiclist.responsive-show-all > li > dl').each(function() { var $this = $(this), $block = $this.find('dt .responsive-show:last-child'), first = true; // Create block that is visible only on mobile devices if (!$block.length) { $this.find('dt > .list-inner').append('