a:270:{s:11:"use_bfa_seo";s:3:"Yes";s:25:"homepage_meta_description";s:100:"Homepage of the Shirley Corps of the Salvation Army. Find us in Victor Street, Shirley, Southampton.";s:22:"homepage_meta_keywords";s:179:"salvation army, southampton, christian, church, charity, shirley, band, brass band, singing, cell group, alpha, bible, bible study, victor street, sally army, god, jesus, christ, ";s:13:"add_blogtitle";s:23:"Page Title - Blog Title";s:20:"title_separator_code";s:2:"12";s:15:"archive_noindex";s:2:"No";s:11:"cat_noindex";s:2:"No";s:11:"tag_noindex";s:2:"No";s:18:"h1_on_single_pages";s:3:"Yes";s:8:"nofollow";s:2:"No";s:10:"body_style";s:191:"background: #E1f4e3 url(/wp-content/uploads/2010/03/Shield_Red_Background.jpg) fixed repeat-x top left; padding: 0 10px; font-family: tahoma, arial, sans-serif; font-size: 0.8em; color: #000;";s:10:"link_color";s:6:"E76060";s:16:"link_hover_color";s:6:"FF0000";s:23:"link_default_decoration";s:9:"underline";s:21:"link_hover_decoration";s:9:"underline";s:11:"link_weight";s:4:"bold";s:12:"layout_width";s:5:"960px";s:16:"layout_min_width";s:0:"";s:16:"layout_max_width";s:0:"";s:12:"layout_style";s:18:"margin-top: -30px;";s:30:"layout_style_leftright_padding";s:1:"0";s:12:"favicon_file";s:12:"00-cross.ico";s:16:"configure_header";s:184:"<?php bfa_widget_area('name=Header_widget_area&cells=2&align_1=9&align_3=3&width_2=300&before_widget=<div id="%1$s" class="header-widget %2$s">&after_widget=</div>'); ?>
%image %pages";s:14:"logoarea_style";s:0:"";s:4:"logo";s:12:"120px-SA.png";s:10:"logo_style";s:19:"margin: 0 10px 0 0;";s:15:"blog_title_show";s:3:"Yes";s:16:"blog_title_style";s:189:"margin: 0 0 5px 0;
padding: 0;
letter-spacing: -1px;
line-height: 1.0em;
font-family: tahoma, arial, sans-serif;
font-size: 240%; 
font-variant: normal; 
border: 0; 
width: 100%; 
";s:17:"blog_title_weight";s:4:"bold";s:16:"blog_title_color";s:6:"666666";s:22:"blog_title_color_hover";s:6:"000000";s:17:"blog_tagline_show";s:3:"Yes";s:18:"blog_tagline_style";s:76:"margin: 0;
padding: 0;
font-size: 1.2em;
font-weight: bold;
color: #666;";s:15:"show_search_box";s:3:"Yes";s:15:"searchbox_style";s:54:"border-bottom: 0; width: 200px; margin: 0; padding: 0;";s:14:"searchbox_text";s:9:"Search...";s:7:"horbar1";s:0:"";s:7:"horbar2";s:0:"";s:23:"header_image_javascript";s:1:"0";s:31:"header_image_javascript_preload";s:3:"Yes";s:22:"header_image_clickable";s:2:"No";s:18:"headerimage_height";s:3:"150";s:21:"headerimage_alignment";s:11:"bottom left";s:19:"header_opacity_left";s:1:"0";s:25:"header_opacity_left_width";s:3:"200";s:25:"header_opacity_left_color";s:6:"FFFFFF";s:20:"header_opacity_right";s:1:"0";s:26:"header_opacity_right_width";s:1:"0";s:26:"header_opacity_right_color";s:6:"FFFFFF";s:18:"overlay_blog_title";s:3:"Yes";s:20:"overlay_blog_tagline";s:3:"Yes";s:17:"overlay_box_style";s:298:"margin-top: 30px;
margin-left: 140px;
width: 480px;
padding: 7px;
background: #fff;
border: dashed 2px transparent !important;
filter: alpha(opacity=60);
-moz-opacity:.60;
opacity:.60;
-moz-border-radius: 7px;
-khtml-border-radius: 7px;
-webkit-border-radius: 7px;
border-radius: 7px;
";s:13:"rss_box_width";s:3:"280";s:15:"show_posts_icon";s:3:"Yes";s:14:"post_feed_link";s:11:"RSS (Posts)";s:20:"post_feed_link_title";s:27:"Subscribe to the POSTS feed";s:18:"show_comments_icon";s:2:"No";s:17:"comment_feed_link";s:8:"Comments";s:23:"comment_feed_link_title";s:30:"Subscribe to the COMMENTS feed";s:15:"show_email_icon";s:2:"No";s:20:"email_subscribe_link";s:8:"By Email";s:26:"email_subscribe_link_title";s:18:"Subscribe by EMAIL";s:19:"feedburner_email_id";s:0:"";s:18:"feedburner_old_new";s:30:"New - at feedburner.google.com";s:18:"home_page_menu_bar";s:4:"Home";s:21:"exclude_page_menu_bar";s:94:"1545, 1417, 1299, 1293, 1273, 908, 561, 523, 39, 59, 61, 70, 455, 658, 256, 407, 664, 982, 979";s:20:"levels_page_menu_bar";s:1:"0";s:21:"sorting_page_menu_bar";s:10:"menu_order";s:20:"titles_page_menu_bar";s:2:"No";s:30:"page_menu_1st_level_not_linked";s:3:"Yes";s:27:"anchor_border_page_menu_bar";s:33:"dashed 1px transparent !important";s:30:"page_menu_bar_background_color";s:6:"FFFFFF";s:36:"page_menu_bar_background_color_hover";s:6:"EEEEEE";s:37:"page_menu_bar_background_color_parent";s:6:"DDDDDD";s:14:"page_menu_font";s:49:"13px "Arial Rounded MT Bold", Verdana, sans-serif";s:24:"page_menu_bar_link_color";s:6:"FFFFFF";s:30:"page_menu_bar_link_color_hover";s:6:"3432E7";s:19:"page_menu_transform";s:4:"none";s:16:"page_menu_arrows";s:5:"white";s:23:"page_menu_submenu_width";s:4:"11.5";s:17:"home_cat_menu_bar";s:0:"";s:20:"exclude_cat_menu_bar";s:0:"";s:19:"levels_cat_menu_bar";s:1:"0";s:20:"sorting_cat_menu_bar";s:2:"ID";s:18:"order_cat_menu_bar";s:3:"ASC";s:19:"titles_cat_menu_bar";s:2:"No";s:24:"add_descr_cat_menu_links";s:2:"No";s:22:"default_cat_descr_text";s:42:"View all posts filed under<br />%category%";s:26:"anchor_border_cat_menu_bar";s:17:"solid 1px #000000";s:29:"cat_menu_bar_background_color";s:6:"777777";s:35:"cat_menu_bar_background_color_hover";s:6:"cc0000";s:36:"cat_menu_bar_background_color_parent";s:6:"000000";s:13:"cat_menu_font";s:31:"11px Arial, Verdana, sans-serif";s:23:"cat_menu_bar_link_color";s:6:"ffffff";s:29:"cat_menu_bar_link_color_hover";s:6:"ffffff";s:18:"cat_menu_transform";s:9:"uppercase";s:15:"cat_menu_arrows";s:5:"white";s:22:"cat_menu_submenu_width";s:2:"11";s:19:"center_column_style";s:70:"padding: 10px 15px;
position: relative;
background: #fff !important;";s:18:"content_above_loop";s:130:"<?php bfa_next_previous_page_links('Top'); if( is_category() AND function_exists('page2cat_output')) { page2cat_output($cat); } ?>";s:19:"content_inside_loop";s:1331:"<?php bfa_next_previous_post_links('Top');
if ( function_exists('post_class') ) { ?>
<div <?php if ( is_page() ) { post_class('post'); } else { post_class("$odd_or_even"); } ?> id="post-<?php the_ID(); ?>">
<?php } else { ?>
<div class="<?php echo ( is_page() ? 'page ' : '' ) . $odd_or_even . ' post" id="post-'; the_ID(); ?>">
<?php }

//if (is_page('Events')) {
//ini_set('include_path',ini_get('include_path').':./WebCalendar:./WebCalendar/includes:..:');
//include 'month.php';
//}

bfa_post_kicker('<div class="post-kicker">','</div>');
bfa_post_headline('<div class="post-headline">','</div>');
bfa_post_byline('<div class="post-byline">','</div>');
bfa_post_bodycopy('<div class="post-bodycopy clearfix">','</div>');

if (is_single()){ /*If this is a single post page, display WHAT'S THIS link*/
if (!is_single(1092)){ /*exclude other pages here*/
?>

<div id="social"><a href='/social-bookmarking'>What's this?</a>&nbsp;</div>
<?php } }
bfa_post_pagination('<p class="post-pagination"><strong>'.__('Pages:','atahualpa').'</strong>','</p>');

if (is_single()){ /*If this is a single post page, move footer up to link with share this */
bfa_post_footer('<div class="post-footer post-footer-share">','</div>');
}
else {	
bfa_post_footer('<div class="post-footer">','</div>');
}
?>
</div>


";s:18:"content_below_loop";s:211:"<?php bfa_next_previous_post_links('Middle');
bfa_get_comments();
bfa_next_previous_post_links('Bottom');
bfa_archives_page('<div class="archives-page">','</div>');
bfa_next_previous_page_links('Bottom'); ?>";s:17:"content_not_found";s:399:"<h2>Page Not Found</h2>
<p>Sorry, but you are looking for something that isn't here.</p><p>The page may not exist, or the its name may have changed. Please use the search function above to find what you are looking for.</p>
<p>If you still encounter problems, please <a href="/contact-us">e-mail us</a> and let us know about this error, and include details of the page you were trying to find.</p>";s:21:"next_prev_orientation";s:23:"Older Left, Newer Right";s:20:"home_multi_next_prev";s:0:"";s:21:"home_single_next_prev";s:0:"";s:21:"multi_next_prev_newer";s:21:"Newer Entries &raquo;";s:21:"multi_next_prev_older";s:21:"&laquo; Older Entries";s:22:"single_next_prev_newer";s:13:"%link &raquo;";s:22:"single_next_prev_older";s:13:"&laquo; %link";s:25:"single_next_prev_same_cat";s:2:"No";s:24:"comments_next_prev_newer";s:22:"&laquo; Newer Comments";s:24:"comments_next_prev_older";s:22:"Older Comments &raquo;";s:27:"location_comments_next_prev";s:24:"Above and Below Comments";s:30:"next_prev_style_comments_above";s:42:"margin: 0 0 10px 0;
padding: 5px 0 5px 0;";s:30:"next_prev_style_comments_below";s:42:"margin: 0 0 10px 0;
padding: 5px 0 5px 0;";s:29:"next_prev_comments_pagination";s:3:"Yes";s:24:"location_multi_next_prev";s:6:"Bottom";s:25:"location_single_next_prev";s:3:"Top";s:19:"next_prev_style_top";s:74:"margin: 0 0 10px 0;
padding: 0 0 10px 0;
border-bottom: dashed 1px #ccc;";s:22:"next_prev_style_middle";s:110:"margin: 10px 0 20px 0;
padding: 10px 0 10px 0;
border-top: dashed 1px #ccc;
border-bottom: dashed 1px #ccc;";s:22:"next_prev_style_bottom";s:71:"margin: 20px 0 0 0;
padding: 10px 0 0 0;
border-top: dashed 1px #ccc;";s:10:"leftcol_on";a:13:{s:8:"homepage";s:2:"on";s:9:"frontpage";s:2:"on";s:6:"single";s:2:"on";s:4:"page";s:2:"on";s:8:"category";s:2:"on";s:4:"date";s:2:"on";s:3:"tag";s:2:"on";s:8:"taxonomy";s:2:"on";s:6:"search";s:2:"on";s:6:"author";s:2:"on";i:404;s:2:"on";s:10:"attachment";s:2:"on";s:19:"check-if-saved-once";s:5:"saved";}s:22:"left_col_pages_exclude";s:0:"";s:21:"left_col_cats_exclude";s:0:"";s:11:"leftcol2_on";a:1:{s:19:"check-if-saved-once";s:5:"saved";}s:23:"left_col2_pages_exclude";s:0:"";s:22:"left_col2_cats_exclude";s:0:"";s:11:"rightcol_on";a:2:{s:4:"page";s:2:"on";s:19:"check-if-saved-once";s:5:"saved";}s:23:"right_col_pages_exclude";s:131:"1317, 908, 632, 523, 591, 561, 482, 484, 487, 475, 455, 39, 36, 54, 59, 61, 70, 31, 24, 26, 29, 27, 119, 187, 199, 103, 108, 74, 76";s:22:"right_col_cats_exclude";s:0:"";s:12:"rightcol2_on";a:2:{s:6:"search";s:2:"on";s:19:"check-if-saved-once";s:5:"saved";}s:24:"right_col2_pages_exclude";s:0:"";s:23:"right_col2_cats_exclude";s:0:"";s:18:"left_sidebar_width";s:3:"240";s:19:"left_sidebar2_width";s:3:"250";s:19:"right_sidebar_width";s:3:"200";s:20:"right_sidebar2_width";s:3:"150";s:18:"left_sidebar_style";s:43:"padding: 10px; background: #fff !important;";s:19:"left_sidebar2_style";s:43:"padding: 10px; background: #fff !important;";s:19:"right_sidebar_style";s:43:"padding: 10px; background: #fff !important;";s:20:"right_sidebar2_style";s:43:"padding: 10px; background: #fff !important;";s:16:"widget_container";s:36:"margin: 0 0 15px 0;
padding: 2px;
";s:16:"widget_title_box";s:63:"border-bottom: solid 1px #000;
padding: 2px;
margin: 2px 0px;";s:12:"widget_title";s:66:"font-size: 120%;
font-variant: small-caps; 
letter-spacing: 1px;";s:14:"widget_content";s:10:"margin: 0;";s:12:"widget_lists";a:8:{s:14:"li-margin-left";s:1:"0";s:22:"link-border-left-width";s:1:"7";s:22:"link-border-left-color";s:6:"CCCCCC";s:28:"link-border-left-hover-color";s:6:"000000";s:17:"link-padding-left";s:1:"5";s:11:"link-weight";s:6:"normal";s:10:"link-color";s:6:"444444";s:16:"link-hover-color";s:6:"000000";}s:13:"widget_lists2";a:8:{s:14:"li-margin-left";s:1:"5";s:22:"link-border-left-width";s:1:"7";s:22:"link-border-left-color";s:6:"CCCCCC";s:28:"link-border-left-hover-color";s:6:"000000";s:17:"link-padding-left";s:1:"5";s:11:"link-weight";s:6:"normal";s:10:"link-color";s:6:"444444";s:16:"link-hover-color";s:6:"000000";}s:13:"widget_lists3";a:8:{s:14:"li-margin-left";s:1:"7";s:22:"link-border-left-width";s:1:"7";s:22:"link-border-left-color";s:6:"CCCCCC";s:28:"link-border-left-hover-color";s:6:"000000";s:17:"link-padding-left";s:1:"5";s:11:"link-weight";s:6:"normal";s:10:"link-color";s:6:"444444";s:16:"link-hover-color";s:6:"000000";}s:28:"category_widget_display_type";s:6:"inline";s:16:"select_font_size";s:7:"Default";s:16:"post_kicker_home";s:0:"";s:17:"post_kicker_multi";s:0:"";s:18:"post_kicker_single";s:0:"";s:16:"post_kicker_page";s:0:"";s:16:"post_byline_home";s:0:"";s:17:"post_byline_multi";s:0:"";s:18:"post_byline_single";s:22:"By %author-posts-link%";s:16:"post_byline_page";s:0:"";s:16:"post_footer_home";s:211:"%date('jS F Y')% | %tags-linked('Tags: ', ', ', ' | ')% Category: %categories-linked(', ')% | %comments('Leave a comment', 'One comment', '% comments', 'Comments are closed')% %edit(' | ', 'Edit this post', '')%";s:17:"post_footer_multi";s:211:"%date('jS F Y')% | %tags-linked('Tags: ', ', ', ' | ')% Category: %categories-linked(', ')% | %comments('Leave a comment', 'One comment', '% comments', 'Comments are closed')% %edit(' | ', 'Edit this post', '')%";s:18:"post_footer_single";s:127:"%date('jS F Y')% | %tags-linked('Tags: ', ', ', ' | ')% Category: %categories-linked(', ')% %edit(' | ', 'Edit this post', '')%";s:16:"post_footer_page";s:0:"";s:20:"post_container_style";s:19:"margin: 0 0 30px 0;";s:27:"post_container_sticky_style";s:129:"background: #eee url(http://www.shirleysa.org.uk/wp-content/themes/atahualpa/images/sticky.gif) 99% 5% no-repeat;
padding: 10px;";s:17:"post_kicker_style";s:18:"margin: 0 0 5px 0;";s:23:"post_kicker_style_links";s:64:"color: #000;
text-decoration: none;
text-transform: uppercase;";s:29:"post_kicker_style_links_hover";s:15:"color: #cc0000;";s:19:"post_headline_style";s:0:"";s:24:"post_headline_style_text";s:23:"padding: 0;
margin: 0;";s:25:"post_headline_style_links";s:36:"color: #666;
text-decoration: none;";s:31:"post_headline_style_links_hover";s:36:"color: #000;
text-decoration: none;";s:17:"post_byline_style";s:70:"margin: 5px 0 10px 0; font-weight: bold; font-size: 105%; color: #666;";s:23:"post_byline_style_links";s:0:"";s:29:"post_byline_style_links_hover";s:0:"";s:19:"post_bodycopy_style";s:0:"";s:17:"post_footer_style";s:78:"margin: 0;
padding: 5px;
background: #eee;
color: #666;
line-height: 18px;";s:23:"post_footer_style_links";s:58:"color: #333;
font-weight: normal;
text-decoration: none;";s:29:"post_footer_style_links_hover";s:63:"color: #333;
font-weight: normal;
text-decoration: underline;";s:14:"excerpt_length";s:2:"40";s:19:"dont_strip_excerpts";s:3:"<p>";s:16:"custom_read_more";s:60:"<span>&nbsp;<a href="%permalink%">[more...]&nbsp;</a></span>";s:13:"excerpts_home";s:13:"Only Excerpts";s:19:"full_posts_homepage";s:1:"1";s:17:"excerpts_category";s:13:"Only Excerpts";s:16:"excerpts_archive";s:13:"Only Excerpts";s:12:"excerpts_tag";s:13:"Only Excerpts";s:15:"excerpts_search";s:13:"Only Excerpts";s:15:"excerpts_author";s:13:"Only Excerpts";s:20:"post_thumbnail_width";s:3:"150";s:21:"post_thumbnail_height";s:3:"150";s:19:"post_thumbnail_crop";s:2:"No";s:18:"post_thumbnail_css";s:81:"float: left;
border: 0;
padding: 0;
background: none;
margin: 0 10px 5px 0;
";s:8:"more_tag";s:22:"<span>[more...]</span>";s:16:"author_highlight";s:3:"Yes";s:22:"author_highlight_color";s:6:"FFECEC";s:29:"author_highlight_border_color";s:6:"FFBFBF";s:24:"comment_background_color";s:6:"FFFFFF";s:28:"comment_alt_background_color";s:6:"EEEEEE";s:14:"comment_border";s:15:"dotted 1px #ccc";s:19:"comment_author_size";s:4:"110%";s:23:"comment_reply_link_text";s:15:" &middot; Reply";s:22:"comment_edit_link_text";s:14:" &middot; Edit";s:23:"comment_moderation_text";s:36:"Your comment is awaiting moderation.";s:24:"comments_are_closed_text";s:27:"<p>Comments are closed.</p>";s:17:"comments_on_pages";s:2:"No";s:19:"separate_trackbacks";s:2:"No";s:11:"avatar_size";s:2:"55";s:12:"avatar_style";s:192:"margin: 0 8px 1px 0;
padding: 3px;
border: solid 1px #ddd;
background-color: #f3f3f3;
-moz-border-radius: 3px;
-khtml-border-radius: 3px;
-webkit-border-radius: 3px;
border-radius: 3px;";s:15:"show_xhtml_tags";s:2:"No";s:18:"comment_form_style";s:154:"margin: 25px 0;
padding: 25px;
background: #eee;
-moz-border-radius: 8px;
-khtml-border-radius: 8px;
-webkit-border-radius: 8px;
border-radius: 8px;";s:19:"submit_button_style";s:36:"height: 24px;
margin: 10px 510px 0;";s:21:"comment_display_order";s:13:"Oldest on top";s:12:"footer_style";s:117:"background-color: #fff; padding: 10px; text-align: center; color: #777; font-size: 80%; border-top: solid 2px #ccc;
";s:18:"footer_style_links";s:54:"text-decoration: none; color: #777; font-weight: bold;";s:24:"footer_style_links_hover";s:12:"color: #000;";s:20:"footer_style_content";s:1460:"<div id="footer-all">
<div id="footerleft" class="footeroutside footer">
Powered by <a href="http://wordpress.org/" target="_blank">WordPress</a> using the <a href="http://wordpress.bytesforall.com/?page_id=40" target="_blank">Atahualpa Theme</a><p><a href="http://validator.w3.org/check?uri=referer" target="_blank" title="Valid XHTML 1.0 Transitional"><img src="/wp-content/uploads/valid-xhtml10.png" alt="Valid XHTML 1.0 Transitional" height="31" width="88" /></a></p></div>
	<div id="footercenter" class="footer">
	<div>Copyright &copy; %current-year% Shirley Corps of The Salvation Army - All Rights Reserved</div>
	<div id="footercenter2">This is an independant website for the Southampton Shirley Corps of the Salvation Army. The views and opinions expressed on this site may not necessarily reflect those of the Salvation Army UK Territory. We are not resposible for the content of external websites.</div>
<div><em>The Salvation Army is a Christian church and a registered charity (Registered Charity No. 214779 and in Scotland SC009359)</em>
<img alt="Visitors since 17-Mar-2011" title="Visitors since 17-Mar-2011" src="/cgi-sys/Count.cgi?df=shirleys.dat|display=Counter|ft=6|md=5|frgb=100;139;216|dd=M" /></div>
</div>
<div id="footerright" class="footeroutside footer"><p><a href="/about/contact-us">Website designed and created by Ashley Launn</a></p>
<div id="footer-links"><p>%register%&nbsp;|&nbsp;%loginout%</p></div>
</div>
</div>";s:20:"sticky_layout_footer";s:3:"Yes";s:19:"footer_show_queries";s:2:"No";s:5:"table";s:43:"border-collapse: collapse;
margin: 10px 0;";s:13:"table_caption";s:65:"background: #eee;
border: #999;
padding: 4px 8px;
color: #666;";s:8:"table_th";s:131:"background: #888;
color: #fff;
font-weight: bold;
font-size: 90%;
padding: 4px 8px;
border: solid 1px #fff;
text-align: left;";s:8:"table_td";s:93:"padding: 4px 8px;
background-color: #fff;
border-bottom: 1px solid #ddd;
text-align: left;";s:14:"table_tfoot_td";s:0:"";s:19:"table_zebra_stripes";s:3:"Yes";s:14:"table_zebra_td";s:20:"background: #f4f4f4;";s:16:"table_hover_rows";s:3:"Yes";s:14:"table_hover_td";s:20:"background: #e2e2e2;";s:22:"form_input_field_style";s:149:"color: #000000;
border-top: solid 1px #333333;
border-left: solid 1px #333333;
border-right: solid 1px #999999;
border-bottom: solid 1px #cccccc;";s:27:"form_input_field_background";s:15:"inputbackgr.gif";s:15:"highlight_forms";s:3:"Yes";s:21:"highlight_forms_style";s:44:"background: #e8eff7;
border-color: #37699f;";s:12:"button_style";s:244:"background-color: #777;
color: #fff;
border: solid 2px #fff;
font-weight: bold;
font-size:12px;
font-family: Verdana,Arial,"Bitstream Vera Sans",sans-serif;
-moz-border-radius:11px 11px 11px 11px;
padding:4px 10px;
text-decoration:none;";s:18:"button_style_hover";s:68:"background-color: #E76060;
color: #000;
border: solid 2px #496d49;";s:16:"blockquote_style";s:81:"color: #555;
padding: 1em 1em;
background: #f4f4f4;
border: solid 1px #e1e1e1;";s:26:"blockquote_style_2nd_level";s:81:"color: #444;
padding: 1em 1em;
background: #e1e1e1;
border: solid 1px #d3d3d3;";s:16:"post_image_style";s:0:"";s:24:"post_image_caption_style";s:216:"border: 1px solid #ddd;
text-align: center;
background-color: #f3f3f3;
padding-top: 4px;
margin: 10px 0 0 0;
-moz-border-radius: 3px;
-khtml-border-radius: 3px;
-webkit-border-radius: 3px;
border-radius: 3px;";s:18:"image_caption_text";s:86:"font-size: 0.8em;
line-height: 13px;
padding: 2px 4px 5px;
margin: 0;
color: #666;";s:19:"html_inserts_header";s:701:"<meta name="author" content="Southampton Shirley Corps" />
<meta name="designed by" content="Ashley Launn" />
<meta name="description" content="Southampton Shirley Corps of the Salvation Army" />
<meta name="google-site-verification" content="MzJm3bf8YZUwKCihaO5U53zowE_DvZgWU_4CZc4jOD4" />
<link rel="stylesheet" type="text/css" href="/wp-content/plugins/highslide/highslide-new.css" />
<link rel="stylesheet" href="/wp-content/scripts/lightwindow.css" type="text/css" media="screen" />
<!--[if lt IE 7]>
<link rel="stylesheet" type="text/css" href="/wp-content/plugins/highslide/highslide-ie6.css" />
<![endif]-->
<script src="/wp-content/scripts/easing.js" type="text/javascript"></script>";s:21:"html_inserts_body_tag";s:0:"";s:21:"html_inserts_body_top";s:0:"";s:24:"html_inserts_body_bottom";s:758:"<script type="text/javascript" src="/wp-content/plugins/highslide/highslide-with-gallery-new.js"></script>
<script type="text/javascript" src="/wp-content/plugins/highslide/highslide.config-new.js" charset="utf-8"></script>
<script type="text/javascript" src="/wp-content/scripts/jquery.idTabs.min.js"></script>
<script type="text/javascript" src="/wp-content/scripts/showhide.js"></script>
<script type="text/javascript" src="/wp-content/scripts/popup.js"></script>
<script src="/wp-content/scripts/css_browser_selector.js" type="text/javascript"></script>
<!--script src="/wp-content/scripts/wibiya.js" type="text/javascript"-->
<script src="http://cdn.wibiya.com/Toolbars/dir_0375/Toolbar_375250/Loader_375250.js" type="text/javascript"></script>
";s:16:"html_inserts_css";s:7952:"td#middle div.post-bodycopy {
line-height:1.3em !important;
}

/****************Welcome page************/
#welcome-head {
background: #ddd;
height: 40px;
width: 635px;
padding: 10px;
}

div#post-39 .post-headline {
display:none;
}

/*****************************************************/

.reset-all,
.reset-tab {
display:none;
}


/****back button***/

#48ygfb {

}

/******************************showhide stuff*************************************/
.showhide a {
text-decoration: none;
font-weight: normal;
width: auto;
padding: 4px 10px;
margin: 10px;
float: left;
}

.sh-show a{
color: #000;
background-color: #eee;
}

.sh-hide a{
background-color: #aaa;
color: #fff;
}


/*************************misc************************************/

div.hidden {
display: none;
}
div.clear {
clear: both;
}

/*****************remove link from certain anchors***********************/
a.nolink {
text-decoration: none;
color: #000;
font-weight: normal;
}

/*****************Move gallery down arrow hidden by the wibya toolbar*************/
.highslide-scroll-down {
bottom: 25px !important;
}

/********************Remove horizontal scroll bar******************************/
html, body {
overflow-x: hidden;
}

/**********************Position what's this link for social bookmarks*******************/

#social {
float: right;
margin-top: -68px;
margin-right: 160px;
position: relative;
}

div.shr-getshr {
visibility: hidden !important;
margin-left: 9999px;
}

div.shr-bookmarks {
margin-bottom: 8px !important;
}

div.post-footer-share { /*move footer up to link with menu */
margin-top: -20px;
}


/******************************Style footer table************************************/
#footer-all {
margin-top: -10px;
height: 120px;
}

.footer{
float: left;
padding: 22px 2px;
}

.footeroutside {
width: 150px;"
}

#footerright {
padding-left: 10px
}

#footercenter {
align: center;
width: 610px;
border-left: 1px solid #ccc;
border-right: 1px solid #ccc;
}
#footercenter2 {
margin: 5px 0;
}
#footercenter2 img{
margin: 5px;
}
#footer-links,
#footer-links a {
color: #e76060!important;
}
#footer-links a:hover {
color: red!important;
}

/***************************Style headings*******************************/

h1 {
	margin: 2px 0;
	padding: 2px 0; 
	font-size: 185%; 
	font-variant: small-caps; 
	letter-spacing: 1px;
	border-bottom: solid 2px black; 
	width: 60%; 
	padding: 2px
	}
h2 {
	font-size: 165%; 
	font-variant: small-caps; 
	letter-spacing: 1px;
	}
h3 {
	font-size: 140%;
	}

*************************** Widget Area styling ****************************************/

div#menu1 {
	margin-left: -10px;
	}
/******************right-aligned widgets settings**********************************/

#pages-2,
#ngg-images-3 {
	text-align: right;
	}

#pages-2 ul li a {
	border-left: 0 !important;
	padding-left: 0 !important;
	display: block;
	margin: 2px 10px 2px 0 !important;
	padding: 0 6px 0 0 !important; 
	border-right: solid 7px #ccc !important;
	}
#pages-2 ul li a:hover,
#pages-2 ul li a.sfhover {
	display: block;
	width: auto;
	border-right: solid 7px #000 !important; 
	}

/****************************Position Search Bar *********************************************/ 

table#header_widget_area {
	z-index: 999;
	position: relative;
	top: 40px;
	margin-right: 10px;
	filter: alpha(opacity=80);
	-moz-opacity:.80;
	opacity:.80;
	}
/******************************** position header slideshow ***************************************/

#sbsl3_1 {
	width: 100%;
	z-index:1;
	position: relative;
	background: #000 url('/wp-content/header-images/web_page_header_04.jpg') no-repeat left top !important;
	}
#sbsl3_1 a {
visibility: hidden
}

#swfDiv { /*margin under slideshow*/
margin-bottom: 15px;
}

td#header { /*fixes height of header area until the flash loads (can take a few seconds) */
height: 215px;
}

/******************************** Style menu bar ****************************************/

ul#rmenu2 {
	background: transparent !important;
	margin-top:159px !important;
	padding: 16px !important;
	position: absolute !important;
	width:auto!important;
	z-index:4 !important;
	}
ul#rmenu2 li {
	background-color: #000000 !important;
	}

ul.rMenu li:hover,
ul.rMenu li.sfhover {
	background-color: #ccc !important;
	color: #000 !important;
	}

ul.rMenu li.current_page_item>a:link, 
ul.rMenu li.current_page_item>a:visited, 
ul.rMenu li.current_page_item>a:hover, 
ul.rMenu li.current_page_item>a:active,
ul.rMenu li.current_page_ancestor>a:link, 
ul.rMenu li.current_page_ancestor>a:visited, 
ul.rMenu li.current_page_ancestor>a:hover, 
ul.rMenu li.current_page_ancestor>a:active
{
	background-color: #ccc !important;
	color: #000 !important;
	}
ul.rMenu li a:hover{
	background-color: #ccc !important;
	color: #000 !important;
	}

div#menu1 ul.rMenu-hor li.rMenu-expand > a:hover {
	background-image: url(wp-content/themes/atahualpa364/images/expand-down.gif);
	}


/*******************Style for Crest and Title in header************************************/

#imagecontainer {
position: absolute;
z-index: 999;
margin: 5px 0px 0px 18px;
	}

/*********************** Style idTabs tabbed browsing***********************************/

.idTabs1 { /*fix margin on left of first tab (due to atahualpa's css)*/
	margin-left:-40px;
	}
.idTabs { /*main container for everything*/
	background:none repeat scroll 0 0 none;
	border:none;
	color:#111;
	margin: 0px;
	padding:15px 0px;
	width 90% !important;
	float: left;
	}
.idTabs li { /* setup tabs to flow L-R and remove bullets*/
	float:left;
	list-style:none outside none;
	width:125px;
	text-align: center;
	}
.idTabs ul a { /*unselected tab*/
	background:none repeat scroll 0 0 #333;
	color:#fff;
	display:block;
	margin-right: 5px;
	padding:6px 10px;
	text-decoration:none !important;
	border-top-left-radius: 10px;
	-moz-border-top-left-radius: 10px;
	border-top-right-radius: 10px;
	-moz-border-top-right-radius: 10px;
	}
.idTabs ul a:hover { /*hover color*/
	background:none repeat scroll 0 0 #777;
	color:#fff;
	}
.idTabs ul a.selected { /*current tab*/
	background:none repeat scroll 0 0 #eee;
	color:#000;
	cursor:default;
	margin-bottom:0;
	}
.idTabs div { /*text container*/
	background:none repeat scroll 0 0 #eee;
	clear:left;
	padding:10px 10px 8px;
	}
.idTabs div a { /*text container links*/
	color:#000;
	font-weight:bold;
	}
.tabs { /*container for bottom of tabs */
	height:130px;
	width: 475px;
	}

/***********************podcast Archive******************************************/

#archive {
margin: 10px 0;
}

#archive-view {
display: none;
background-color: #eee;
padding: 10px;
margin: 10px 0;
width: 300px;
}

.archive-month {
display:none;
margin-left: 20px;
}

/****************wecome nav************/

#welcome-nav{
width: 100%;
margin-left: -40px;

}

.nav2 li {
list-style-type: none;
display: inline;
}
.nav2 li a {
position: relative;
display: block;
float: left;
font-family: "Arial-Black";
font-size: 1.8em;
margin: 5px;
padding: 3px 15px 4px;
-moz-border-radius: 5px;
border-radius: 5px;
color: #fff;
background-color: #888;
text-decoration: none;
line-height: 2em;

}
.nav2 li a:hover,
.nav2 li a.select:link,
.nav2 li a.select:visited,
.nav2 li a.select:hover {
color: #f00000;
background-color: #191919;
margin: 2px 1px 2px;
padding: 6px 19px 7px;
}


/***************************test area*******************************************/

<?php
wp_reset_query();
if(is_page(array(664, 407, 256, 658,"firefighter-memorial"))) { echo "
#wibiyaToolbar {
margin-left: 8% !important;
margin-right: 0px !important;
width: 92% !important;
display: none !important;
}"?>
";s:16:"archives_page_id";s:2:"36";s:18:"archives_date_show";s:3:"Yes";s:19:"archives_date_title";s:17:"Archives by Month";s:18:"archives_date_type";s:7:"monthly";s:19:"archives_date_limit";s:0:"";s:19:"archives_date_count";s:3:"Yes";s:22:"archives_category_show";s:3:"Yes";s:23:"archives_category_title";s:20:"Archives by Category";s:23:"archives_category_count";s:3:"Yes";s:23:"archives_category_depth";s:1:"0";s:25:"archives_category_orderby";s:4:"name";s:23:"archives_category_order";s:3:"ASC";s:22:"archives_category_feed";s:2:"No";s:12:"css_external";s:8:"External";s:19:"javascript_external";s:8:"External";s:16:"pngfix_selectors";s:67:"a.posts-icon, a.comments-icon, a.email-icon, img.logo, 120px-SA.png";s:12:"css_compress";s:3:"Yes";s:11:"allow_debug";s:2:"No";s:16:"bfa_widget_areas";a:2:{s:20:"Header_widget_area 1";a:5:{s:4:"name";s:20:"Header_widget_area 1";s:13:"before_widget";s:42:"<div id="%1$s" class="header-widget %2$s">";s:12:"after_widget";s:6:"</div>";s:12:"before_title";s:30:"<div class="widget-title"><h3>";s:11:"after_title";s:11:"</h3></div>";}s:20:"Header_widget_area 2";a:5:{s:4:"name";s:20:"Header_widget_area 2";s:13:"before_widget";s:42:"<div id="%1$s" class="header-widget %2$s">";s:12:"after_widget";s:6:"</div>";s:12:"before_title";s:30:"<div class="widget-title"><h3>";s:11:"after_title";s:11:"</h3></div>";}}s:11:"h_blogtitle";i:2;s:11:"h_posttitle";i:1;s:10:"layout_min";s:0:"";s:10:"layout_max";s:0:"";s:21:"animate_page_menu_bar";s:2:"No";s:15:"crossslide_fade";s:1:"0";s:17:"page_post_options";s:2:"No";}