$.global_title
$.global_subtitle
# -*-s2-*-
## --  n e b u l a !  -- ######################################################
layerinfo type = "layout";
layerinfo name = "Nebula";
layerinfo redist_uniq = "nebula/layout";
layerinfo author_name = "jc";
layerinfo author_email = "jc@livejournal.com";
layerinfo des = "A simple but incredibly flexible design with sidebar, that can look as simple or as complicated as you like.";
layerinfo lang = "en";
## --  p r o p e r t i e s  -- ################################################
propgroup colors = "Colors";
propgroup colors {
	property Color col_weaker_fg {
		des = "Default text color for the page";
		note = "This only really affects the calendar strip, although it is used elsewhere. Text color on content areas is more important.";
	}
	property Color col_weak_fg {
		des = "Text color on content areas";
	}
	property Color col_stronger_fg {
		des = "Text color on headers";
	}
	property Color col_strong_fg {
		des = "Text color on menus";
	}
	property Color col_neutral_fg {
		des = "Text color on titles";
	}
	property Color col_cmtbarone_fg {
		des = "Text color on comment bars";
	}
	property Color col_cmtbartwo_fg {
		des = "Text color on alternating comment bars";
	}
	property Color col_cmtbarscrn_fg {
		des = "Text color for screened comments";
	}
	
	property Color col_entry_link {
		des = "Link color in entries";
	}
	property Color col_entry_vlink {
		des = "Visited link color in entries";
	}
	property Color col_sidebar_link {
		des = "Link color in sidebar";
	}
	property Color col_sidebar_vlink {
		des = "Visited link color in sidebar";
	}
	
	property string img_delete { noui = 1; }
	property string img_screen { noui = 1; }
	property string img_unscreen { noui = 1; }
	property string img_freeze { noui = 1; }
	property string img_unfreeze { noui = 1; }
}
set col_weaker_fg = "#000000";
set col_weak_fg = "#ffffff";
set col_neutral_fg = "#550301";
set col_strong_fg = "#5b4b26";
set col_stronger_fg = "#5b4b26";
set col_cmtbarone_fg = "#ffffff";
set col_cmtbartwo_fg = "#ffffff";
set col_cmtbarscrn_fg = "#ffffff";
set col_sidebar_link = "#000000";
set col_entry_link = "#000000";
set col_entry_vlink = "#000000";
set col_sidebar_vlink = "#000000";
propgroup backgrounds = "Backgrounds";
propgroup backgrounds {
	property Color col_weaker_bg {
		des = "Default background color for the page";
	}
	property Color col_weak_bg {
		des = "Background color on content areas";
	}
	property Color col_stronger_bg {
		des = "Background color on headers";
	}
	property Color col_strong_bg {
		des = "Background color on menus";
	}
	property Color col_neutral_bg {
		des = "Background color on titles";
	}
	property Color col_entry_bg {
		des = "Background color on entries";
	}
	property Color col_border {
		des = "Color for content area borders";
		note = "Content areas affected include sidebar boxes and the mini calendar.";
	}
	property string background_image 
	{
		des = "Background image";
		note = "URL to an image to be used for the page background (leave blank for none). Page texture won't be used if an image is defined.";
	}
	property string background_repeat {
		des = "Background image repeat";
		note = "This does not affect whether your background scrolls with the page. That option is coming up next.";
		values = "repeat|Repeat|no-repeat|Don't repeat|repeat-x|Repeat across only|repeat-y|Repeat down only";
	}
	property string background_attachment {
		des = "Should the background image scroll with the page?";
		values = "scroll|Yes|fixed|No";
	}
	property string background_position {
		des = "Background image position";
		note = "Does not apply if background image is repeating in both directions.";
		values = "center|Center|center left|Center-left|center right|Center-right|top|Top|top left|Top-left|top right|Top-right|bottom|Bottom|bottom left|Bottom-left|bottom right|Bottom-right|left|Left|right|Right";
	}
	set background_image     = "";
	set background_repeat    = "repeat";
	set background_position  = "center";
	set background_attachment = "scroll";
	property string pres_txtr_bg {
		des = "Texture to use for page background";
		note = "Won't be used if a background image is defined above.";
		values = "none|None|brushed_metal.png|Brushed Metal|burlap.png|Burlap|camouflage.png|Camouflage|canvas.png|Canvas|chalk.png|Chalk|cork.png|Cork|fibers.png|Fibers|floral.png|Floral|ice.png|Ice|manila.png|Manila|marble.png|Marble|paper.png|Paper|ridge.png|Ridge|rough.png|Rough|stucco.png|Stucco|terracotta.png|Terracotta|type.png|Type|wavy.png|Wavy";
	}
	property string pres_txtr_h {
		des = "Texture to use for page header";
		values = "none|None|brushed_metal.png|Brushed Metal|burlap.png|Burlap|camouflage.png|Camouflage|canvas.png|Canvas|chalk.png|Chalk|cork.png|Cork|fibers.png|Fibers|floral.png|Floral|ice.png|Ice|manila.png|Manila|marble.png|Marble|paper.png|Paper|ridge.png|Ridge|rough.png|Rough|stucco.png|Stucco|terracotta.png|Terracotta|type.png|Type|wavy.png|Wavy";
	}
	property string pres_txtr_c {
		des = "Texture to use for main content areas";
		values = "none|None|brushed_metal.png|Brushed Metal|burlap.png|Burlap|camouflage.png|Camouflage|canvas.png|Canvas|chalk.png|Chalk|cork.png|Cork|fibers.png|Fibers|floral.png|Floral|ice.png|Ice|manila.png|Manila|marble.png|Marble|paper.png|Paper|ridge.png|Ridge|rough.png|Rough|stucco.png|Stucco|terracotta.png|Terracotta|type.png|Type|wavy.png|Wavy";
	}
	property Color col_cmtbarone_bg {
		des = "Background color for comment bars";
	}
	property Color col_cmtbartwo_bg {
		des = "Background color for alternating comment bars";
	}
	property Color col_cmtbarscrn_bg {
		des = "Background color for screened comment bars";
	}
}
set col_weaker_bg = "#effe8f";
set col_weak_bg = "#5b4b26";
set col_neutral_bg = "#000000";
set col_strong_bg = "#fbe46a";
set col_stronger_bg = "#fbe46a";
set col_cmtbarone_bg = "#e2c956";
set col_cmtbartwo_bg = "#afb13e";
set col_cmtbarscrn_bg = "#fcda3e";
set col_entry_bg = "#977e3b";
set col_border = "#000000";
propgroup fonts {
	property string main_font {
		des = "Preferred Font";
		maxlength = 25;
		size = 10;
		example = "Arial";
		note = "Leave blank for your browser's default font";
	}
	property string main_font_fallback {
		des = "Alternative font style";
		values = "sans-serif|Sans-serif|serif|Serif|cursive|Cursive|monospace|Monospaced|none|Use browser's default";
		note = "This general style will serve as a fallback if your preferred font is unavailable.";
	}
	property string header_font
	{
		des = "Font for the top header box";
		maxlength = 25;
		size = 10;
		example = "Arial";
		note = "Leave blank for your browser's default font";
	}
	property string header_font_fallback
	{
		des = "Alternative font style";
		values = "sans-serif|Sans-serif|serif|Serif|cursive|Cursive|monospace|Monospaced|none|Use browser's default";
		note = "This general style will serve as a fallback if your preferred font is unavailable.";
	}
	property string header_font_size { noui = 1; }
	property string content_font
	{
		des = "Font for the content boxes";
		maxlength = 25;
		size = 10;
		example = "Arial";
		note = "Leave blank for your browser's default font";
	}
	property string content_font_fallback { noui = 1; }
	
	property string subheading_font
	{
		des = "Font for subheadings";
		maxlength = 25;
		size = 10;
		example = "Arial";
		note = "Leave blank for your browser's default font";
	}
	property string subheading_font_fallback { noui = 1; }
	property string entryheading_font
	{
		des = "Font for entry headings";
		maxlength = 25;
		size = 10;
		example = "Arial";
		note = "Leave blank for your browser's default font";
	}
	property string entryheading_font_fallback { noui = 1; }
}
set main_font = "Georgia";
set main_font_fallback = "serif";
set header_font = "Georgia";
set header_font_fallback = "serif";
set header_font_size = "2em";
set content_font = "Georgia";
set content_font_fallback = "sans-serif";
set subheading_font = "Arial";
set subheading_font_fallback = "sans-serif";
set entryheading_font = "Georgia";
set entryheading_font_fallback = "sans-serif";
propgroup pres = "Presentation";
propgroup pres {
	property int summary_items {
		des = "Summary Items";
		note="Maximum number of items in the Page Summary list.  Set to 0 to turn off the Page Summary.  Set to 100 to show all available items.";
	}
	property bool pres_show_entry_list {
		des = "Show links to entries on page?";
	}
	property string pres_page_width {
		des = "Page Width";
		note = "The width of the total page content, including the sidebar.";
		values = "90%|90%|80%|80%|70%|70%|60%|60%|50%|50%|40%|40%";
	}
	property string pres_page_align {
		des = "Page Alignment"; 
		values = "left|Left|center|Center|right|Right";
	}
	property string pres_sidebar_width {
		des = "Sidebar Width";
		note = "How much of the page width is taken up by the sidebar.";
		values = "30%|30%|25%|25%|20%|20%|15%|15%";
	}
	property string pres_sidebar_align {
		des = "Which side of the page should the sidebar show up on?"; 
		values = "left|Left|right|Right";
	}
	property string header_image {
		des = "URL of image to be used as page header";
		example = "http://example.com/your_image.jpg";
	}
	property bool pres_show_cal {
		des = "Show calendar strip on journal pages?";
	}
	property bool show_entry_userpic {
		des = "Show entry-specific userpic next to each entry?";
	}
	property bool pres_use_gradients {
		des = "Use gradients when displaying entry headers and sidebar boxes?";
	}
	property use comment_userpic_style;
	property use use_shared_pic;
	property use page_recent_items;
	property use page_friends_items;
}
set show_entry_userpic = true;
set pres_show_cal = true;
set pres_sidebar_align = "left";
set pres_show_entry_list = true;
set pres_page_width = "80%";
set pres_sidebar_width = "20%";
set pres_txtr_bg = "none";
set pres_txtr_h = "none";
set pres_txtr_c = "none";
set pres_page_align = "center";
set summary_items = 100;
set pres_use_gradients = true;
propgroup text {
	property string text_date_format {
		des = "Date format:";
		example = "%%yyyy%%.%%mm%%.%%dd%%";
	}
	property string text_time_format {
		des = "Time format:";
		example = "%%HH%%:%%min%%";
	}
	property string text_navigation {
		des = "Navigation menu title";
	}
	property string text_navigation_extra {
		des = "Page-specific navigation menu title";
		example = "This page";
	}
	property string page_summary_title {
		des = "Page Summary menu title";
	}
	property string text_entry_plural {
		des = "Text to describe entries in month view";
		format = "plurals";
		example = "1 entry // # entries";
	}
	property use text_nosubject;
	property use text_meta_mood;
	property use text_meta_music;
	property use text_noentries_day;
	property use text_max_comments;
	property string text_comment_from {
		des = "Text to indicate when comment was posted";
		example = "at";
		maxlength = "20";
	}
	property use text_comment_date;
	property use text_comment_ipaddr;
	property use text_comment_frozen;
	property use text_reply_nocomments_header;
	property use text_reply_nocomments;
}
propgroup linktext = "Link text";
propgroup linktext {
	property string text_view_memories {
		des = "View memories";
	}
	property string text_add_mem {
		des = "Add to memories";
	}
	property string text_edit_entry {
		des = "Edit entry";
	}
	property string text_edit_tags {
		des = "Edit tags";
	}
	property use text_view_recent;
	property use text_view_friends;
	property use text_view_archive;
	property use text_view_userinfo;
	property use text_permalink;
	property use text_post_comment;
	property use text_read_comments;
	property use text_post_comment_friends;
	property use text_read_comments_friends;
	property use text_reply_back;
	property use text_comment_reply;
	property use text_comment_parent;
	property use text_comment_thread;
	property string text_link_separator {
		des = "Text or image to separate links with";
		note = "If you use a URL of an image (starting with 'http://'), Nebula will use the image as a separator. It helps to use a small image for this purpose, and your image might break if the URL contains any spaces.";
		example = " |  or http://www.example.com/your_image.jpg";
	}
}
set text_date_format = "%%yyyy%%.%%mm%%.%%dd%%";
set text_time_format = "%%HH%%:%%min%%";
set text_view_memories = "Memories";
set text_add_mem = "Add to Memories";
set page_summary_title = "Summary";
set text_entry_plural = "1 entry // # entries";
set text_edit_entry = "Edit";
set text_edit_tags = "Tags";
set tags_aware = true;
set text_link_separator = "  ";
set text_navigation = "Navigation";
set text_navigation_extra = "This page";
set text_comment_from = "";
set text_comment_date = "at";
## --  p r o p e r t y   h a n d l e r s  -- ##################################
function prop_init () {
	var int entry_lightness = $*col_weaker_bg->lightness();
	var Color col_entry_bg_tint = $entry_lightness > 120 ? $*col_weaker_bg->lighter(): $*col_weaker_fg;
	
	# these shouldn't be limited to a The Boxer subfolder
	$*img_delete = palimg_tint("boxer/delete.gif", $col_entry_bg_tint);
	$*img_screen = palimg_tint("boxer/screen.gif", $col_entry_bg_tint);
	$*img_unscreen = palimg_tint("boxer/unscreen.gif", $col_entry_bg_tint);
	$*img_freeze = palimg_tint("boxer/freeze.gif", $col_entry_bg_tint);
	$*img_unfreeze = palimg_tint("boxer/unfreeze.gif", $col_entry_bg_tint);
	
	# textures! lovely textures.
	if ($*pres_txtr_bg != "none") { $*pres_txtr_bg = palimg_tint("textures/$*pres_txtr_bg", $*col_stronger_fg, $*col_weaker_bg); }
	var Color hfg = "#ffffff";
	if ($*pres_txtr_h != "none") { $*pres_txtr_h = palimg_tint("textures/$*pres_txtr_h", $hfg, $*col_stronger_bg); }
	if ($*pres_txtr_c != "none") { $*pres_txtr_c = palimg_tint("textures/$*pres_txtr_c", $*col_weaker_fg, $*col_weak_bg); }
}
## --  s t y l e s h e e t   f u n c t i o n s  -- ############################
function appended_to_stylesheet() {
        # This function intentionally left blank. Override in user layer.
}
function print_stylesheet () {
	var string pres_sidebar_boxbg;
	var string pres_minical_boxbg;
	var string pres_page_margins;
	# figure out the shade applied to weekends on the MiniCal
	var int minical_lightness = $*col_strong_bg->lightness();
	var Color col_minical_weekend = $minical_lightness > 120 ? $*col_strong_bg->darker(50) : $*col_strong_bg->lighter(50); 
	# figuring out the widths and margins the ghetto way
	var int width_page = int($*pres_page_width);
	var int width_sidebar = int($*pres_sidebar_width);
	var int width_content = $width_page - $width_sidebar - 5;
	var int width_margin = 100 - $width_page;
	
	if ($*pres_page_align == "center") {
		var string str_width_margin = string($width_margin / 2);
		$pres_page_margins = "margin-left: $str_width_margin%;";
	} else {
		var string str_width_margin = string($width_margin);
		$pres_page_margins = "margin-$*pres_page_align: $str_width_margin%;";
	}
	var string pres_content_width = string($width_content) + "%";
	# death to IE
	var string pres_sidebar_width_ie = string($width_sidebar - 3) + "%";
	var string pres_content_width_ie = string($width_content - 3) + "%";
	
	# another ghetto method to align the sidebar properly
	var string pres_sidebar_opp = $*pres_sidebar_align == "left" ? "right" : "left";
	# gradients! lovely gradients.
	if ($*pres_use_gradients) {
		var Color col_black = "#000000";
		var Color col_white = "#ffffff";
		# Let's determine some colours first
		var int tmp_boxborder_lightness = $*col_border->lightness();
		var Color tmp_boxborder_avg = $tmp_boxborder_lightness > 120 ? $*col_border->darker(70) : $*col_border->lighter(70);
		var string tmp_gstart = $tmp_boxborder_avg.as_string->substr(1, 6);
		var string tmp_gend = $*col_strong_bg.as_string->substr(1, 6);
		# Now to generate the gradients
		$pres_sidebar_boxbg = "background: url($*PALIMGROOT/shadow/t.gif/pt$tmp_gstart$tmp_gend) repeat-x;";
		$pres_minical_boxbg = "background: $*col_strong_bg url($*PALIMGROOT/shadow/b.gif/pt$tmp_gstart$tmp_gend) repeat-x scroll bottom;";
	} else {
		$pres_minical_boxbg = "background-color: $*col_strong_bg;";
	}
"""
	body {
		margin: 0;
		padding: 0;
		font-family: $*main_font, $*main_font_fallback;
		font-size: 0.75em;
""";
	if (clean_url($*background_image) != "") {
		"""		background-image: url('$*background_image');
		background-position: $*background_position;
		background-repeat: $*background_repeat;
		background-attachment: $*background_attachment;
		""";
	} elseif ($*pres_txtr_bg != "none") { """		background: url($*pres_txtr_bg);"""; }
"""
		background-color: $*col_weaker_bg;
		color: $*col_weaker_fg;
	}
	#mainContainer {
		width: $*pres_page_width;
		$pres_page_margins
		min-width: 300px;
	} 
	#header {
		padding: 0 1em;
		min-height: 110px;
		margin: 0 0 10px 0;
""";
	if ($*pres_txtr_h != "none") { """		background: url($*pres_txtr_h);"""; }
"""
		background-color: $*col_stronger_bg;
		color: $*col_stronger_fg;
	}
	#header h1 {
		margin: 0 0 -10px 0;
		padding: 15px 0;
	}
	#header a {
		font-family: $*header_font, $*header_font_fallback;
		font-size: $*header_font_size;
		text-decoration: none;
		color: $*col_stronger_fg;
	}
	#header p {
		color: $*col_neutral_fg;
		font-size: 18px;
		font-style: italic;
		margin: 0 0 0 20px;
	}
	#content {
		float: $pres_sidebar_opp;
		background-color: $*col_weak_bg;
		color: $*col_weak_fg;
		padding: 5px;
		margin: 20px 1% 20px 1%;
""";
	if ($*pres_txtr_c != "none") { """		background: url($*pres_txtr_c);"""; }
"""
		width: $pres_content_width;
		voice-family: "\"}\"";
		voice-family:inherit;
		width: $pres_content_width_ie;
	}
	html>body #content {
		width: $pres_content_width_ie;
	}
	#content p {
		margin-top: 0px;
		margin-bottom: 0px;
		padding: 8px;
	}
	#sideBar {
		float: $*pres_sidebar_align;
		padding: 5px;
		margin: 20px 1% 20px 1%;
		background-color: $*col_weak_bg;
		color: $*col_weak_fg;
""";
	if ($*pres_txtr_c != "none") { """background: url($*pres_txtr_c);"""; }
"""
		width: $*pres_sidebar_width;
		voice-family: "\"}\"";
		voice-family:inherit;
		width: $pres_sidebar_width_ie;
	}
	html>body #sideBar {
		width: $pres_sidebar_width_ie;
	}
	#sideBarHeader {
		min-height: 100px;
		background-color: $*col_stronger_bg;
		color: $*col_stronger_fg;
""";
	if ($*pres_txtr_h != "none") { """background: url($*pres_txtr_h);"""; }
"""
		vertical-align: bottom;
		margin-bottom: 10px;
	}
	#sideBar h4 {
		color: $*col_neutral_fg;
		text-transform: uppercase;
		font-weight: normal;
		font-family: $*subheading_font, $*subheading_font_fallback;
		display: block;
		text-align: center;
		padding: 5px;
		padding-bottom: 0;
		$pres_sidebar_boxbg
	}
	#sideBar ul {
		margin: 0 0 1em 1em;
		padding: 0; 
		list-style-type: none;
	}
	.sideBarBox {
		border: 2px solid $*col_border;
		margin-bottom: 5px;
		background-color: $*col_strong_bg;
		color: $*col_strong_fg;
	}
	.sideBarBox a, .sideBarBox a:active {
		color: $*col_sidebar_link;
	}
	.sideBarBox a:visited {
		color: $*col_sidebar_vlink;
	}
	.sideBarBox h5 { 
		font-family: $*subheading_font, $*subheading_font_fallback;
		margin: 10px 0 0 0;
	}
	.sideBarUpi {
		margin: 0;
		padding: 2px;
	}
	.entry {
		padding: 5px;
		background-color: $*col_entry_bg;
		font-family: $*content_font, $*content_font_fallback;
	}
	.entry a {
		color: $*col_entry_link;
	}
	.entry a:visited {
		color: $*col_entry_vlink;
	}
	.entry h3 {
		font-family: $*entryheading_font, $*entryheading_font_fallback;
		font-size: 1.5em;
		padding: 3px;
		margin: 10px 0;
	}
	.entryBar {
		clear: both;
		overflow: auto;
		font-size: 0.9em;
	}
	.entryText {
		margin-top: 5px;
		margin-bottom: 5px;
	}
	.entryFooter {
		padding-top: 1em;
	}
	.commentsInfo {
		float: right;
	}
	form#postform textarea {
		width: 100%; max-width: 99%;
	}
	form#postform input {
		max-width: 100%;
	}
	.commentBoxOne {
		border: 5px solid $*col_cmtbarone_bg;
	}
	.commentBoxTwo {
		border: 5px solid $*col_cmtbartwo_bg;
	}
	.commentBoxScreened {
		border: 5px solid $*col_cmtbarscrn_bg;
	}
	.commentBoxOne .commentInfo {
		background-color: $*col_cmtbarone_bg;
		color: $*col_cmtbarone_fg;
	}
	.commentBoxTwo .commentInfo {
		background-color: $*col_cmtbartwo_bg;
		color: $*col_cmtbartwo_fg;
	}
	.commentBoxScreened .commentInfo {
		background-color: $*col_cmtbarscrn_bg;
		color: $*col_cmtbarscrn_fg;
	}
	.commentBoxOne, .commentBoxTwo, .commentBoxScreened {
		background-color: $*col_weak_bg;
		color: $*col_weak_fg;
		border-right: none;
		border-bottom: none;
		width: 99%;
	}
	.commentBoxOne a, .commentBoxTwo a, .commentBoxScreened a {
		color: $*col_entry_link;
	}
	.commentBoxOne a:visited, .commentBoxTwo a:visited, .commentBoxScreened a:visited {
		color: $*col_entry_vlink;
	}
	.commentUpi {
		float: left;
		margin-right: 10px;
		margin-bottom: 10px;
	}
	.commentUpi img {
		border: 0;
	}
	.commentInfo {
		width: 100%;
		vertical-align: bottom;
		padding-botttom: 5px;
		background-color: #ccf;
	} 
	.commentButs {
		vertical-align: bottom;
		text-align: right;
	}
	.commentText {
		padding-top: 5px;
		padding-left: 5px;
	}
	.commentLinks {
		clear: both;
		margin-left: 5px;
	}
	#footer {
		float: left;
		width: """+$pres_content_width+"""px;
		font-size: 0.8em;
		margin-top: 10px;
		margin-bottom: 10px;
	} 
	h2, h3, h4 {
		margin-top: 0;
	}
	a {
		color: $*col_entry_link;
		text-decoration: none;
	}
	a:hover {
		text-decoration: underline;
	}
	a:visited {
		color: $*col_entry_vlink;
	}
	.userpic {
		float: right;
		margin-left: 5px;
		margin-bottom: 5px;
	}
	div.entrysub h3 {
		margin: 0;
	}
	div.MiniCalContainer {
		border: 2px solid $*col_border;
		width: 98%;
		height: 3em;
		overflow: auto;
		margin-top: 10px;
		margin-left: 1%;
		$pres_minical_boxbg
	}
	.MiniCalDayPosts {
		font-weight: bold;
	}
	td.MiniCalWeekend {
		background-color: $col_minical_weekend;
	}
	td.MiniCalDay, td.MiniCalDayPosts {
		font-family: Trebuchet, Verdana, sans-serif;
		font-size: 0.95em;
		color: $*col_strong_fg;
	}
	.MiniCalDay a, .MiniCalDay a:active, .MiniCalDayPosts a, .MiniCalDayPosts a:active {
		color: $*col_sidebar_link;
	}
	.MiniCalDay a:visited, .MiniCalDayPosts a:visited {
		color: $*col_sidebar_vlink;
	}
	.monthWrapper {
		display: table;
		border: 1px solid black;
		width: 100%;
	}
	.monthRow {
		display: table-row;
		border: 1px solid black;
	}
	.monthCell, .monthDay {
		display: table-cell;
		border: 1px solid black;
		padding: 3px;
	}
	.monthDay {
		font-family: $*subheading_font, $*subheading_font_fallback;
		font-size: 2em;
		text-align: right;
	}
	#cal a {
		text-decoration: none; 
		color: $*col_entry_link;
	}
	.calrow {
		clear: both;
		font-family: Arial, sans-serif;
	}
	
	.calempty {
		width: 24px;
		font-size: 11px;
		margin: 1px;
		float: left;
	}
	.calactitem {
		float: left;
		margin: 1px;
		width: 23px;
		font-size: 11px;
		text-align: center;
		background-color: white;
		border-right: 1px solid black;
		border-bottom: 1px solid black;
	}
	.calDayEntries {
		font-size: 1.5em;
		font-weight: bold;
	}
	.calDay, .calDayEntries, .bigday {
		font-family: $*subheading_font, $*subheading_font_fallback;
		text-align: center;
		vertical-align: middle;
	}
	.bigday {
		font-weight: bold;
	}
	.cal td {
		padding: 3px;
	}
	.calinitem {
		float: left;
		margin: 1px;
		width: 23px;
		font-size: 11px;
		text-align: center;
		border-right: 1px solid black;
		border-bottom: 1px solid black;
	}
		
""";
    appended_to_stylesheet();
}
## --  i m a g e   l i n k   s e p a r a t o r  -- ############################
function separator() : string {
	# Would do this in prop_init, except you can't use HTML in
	# $* variables. Poo.
	if ($*text_link_separator->starts_with("http://")) {
		return "  ";
	} else {
		return $*text_link_separator;
	}
}
## --  p r i n t   l i n k l i s t  -- ########################################
function linklist() : string {
	var string return = "";
	var Page p = get_page();
	if (size $p.linklist <= 0) {
		return "";
	}
	var bool section_open = false;
	$return = $return + "        
| $month"""; var YearWeek[] theWeeks = $m.weeks; foreach var YearWeek w ($theWeeks) { var YearDay[] theDays = $w.days; var int start = $w.pre_empty; foreach var YearDay d ($theDays) { $start = $start + 1; $calendar = $calendar + "\n | """ + $d.day->zeropad(2) + ""; } else { $calendar = $calendar + """MiniCalDay">""" + $d.day->zeropad(2) + ""; } } } $calendar = $calendar + "\n | 
$.global_subtitle
| """;
		}
		"""$*lang_dayname_short[$d] |