From: <Saved by Microsoft Internet Explorer 5>
Subject: Illinois Issues blog: Education and electricity
Date: Thu, 22 Mar 2007 12:32:14 -0500
MIME-Version: 1.0
Content-Type: multipart/related;
	type="multipart/alternative";
	boundary="----=_NextPart_000_0000_01C76C7E.1EED5D60"
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3028

This is a multi-part message in MIME format.

------=_NextPart_000_0000_01C76C7E.1EED5D60
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://illinoisissues.uis.edu/images/bethany.jpg

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
lt3vI+Zweoajgkf/2Q==

------=_NextPart_000_0000_01C76C7E.1EED5D60
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www2.blogger.com/widgets/3319451950-blogarchive.css

#ArchiveList .toggle {
	CURSOR: pointer; FONT-FAMILY: Arial, sans-serif
}
#ArchiveList .toggle-open {
	FONT-SIZE: 1.7em; LINE-HEIGHT: 0.6em
}
#ArchiveList {
	TEXT-ALIGN: left
}
#ArchiveList A.post-count-link {
	TEXT-DECORATION: none
}
#ArchiveList A.post-count-link:link {
	TEXT-DECORATION: none
}
#ArchiveList A.post-count-link:visited {
	TEXT-DECORATION: none
}
#ArchiveList A.toggle {
	TEXT-DECORATION: none
}
#ArchiveList A.toggle:link {
	TEXT-DECORATION: none
}
#ArchiveList A.toggle:visited {
	TEXT-DECORATION: none
}
#ArchiveList A.toggle:hover {
	TEXT-DECORATION: none
}
.BlogArchive #ArchiveList UL LI {
	BORDER-TOP-WIDTH: 0px; LIST-STYLE: none none outside; PADDING-LEFT: =
15px; BORDER-LEFT-WIDTH: 0px; BACKGROUND: none transparent scroll repeat =
0% 0%; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: 0px; TEXT-INDENT: -15px; =
BORDER-RIGHT-WIDTH: 0px
}
.BlogArchive #ArchiveList UL UL LI {
	PADDING-LEFT: 1.2em
}
.BlogArchive #ArchiveList UL {
	BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; =
BORDER-LEFT-WIDTH: 0px; LIST-STYLE-IMAGE: none; BORDER-BOTTOM-WIDTH: =
0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; =
LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px
}
.BlogArchive #ArchiveList UL UL {
	MARGIN-TOP: 5px
}
.BlogArchive #ArchiveList UL.posts LI {
	PADDING-LEFT: 1.3em
}
#ArchiveList .collapsed UL {
	DISPLAY: none
}

------=_NextPart_000_0000_01C76C7E.1EED5D60
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www2.blogger.com/widgets/2791266615-blog.css

.backlink-toggle-zippy {
	PADDING-RIGHT: 11px; BACKGROUND: =
url(http://www.blogger.com/img/triangle.gif) no-repeat left center; =
CURSOR: hand; MARGIN-RIGHT: 0.1em
}
.expanded-backlink .backlink-toggle-zippy {
	BACKGROUND-IMAGE: url(http://www.blogger.com/img/triangle_open.gif)
}
.collapsed-backlink .collapseable {
	DISPLAY: none
}
.status-msg-wrap {
	FONT-SIZE: 110%; MARGIN: 10px auto; WIDTH: 90%; POSITION: relative
}
.status-msg-border {
	BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; FILTER: =
alpha(opacity=3D40); BORDER-LEFT: #000000 1px solid; WIDTH: 100%; =
BORDER-BOTTOM: #000000 1px solid; POSITION: relative; moz-opacity: .40; =
opacity: .40
}
.status-msg-bg {
	Z-INDEX: 1; FILTER: alpha(opacity=3D30); WIDTH: 100%; POSITION: =
relative; BACKGROUND-COLOR: #cccccc; moz-opacity: .80; opacity: .80
}
.status-msg-body {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; Z-INDEX: 4; PADDING-BOTTOM: =
0.3em; WIDTH: 100%; PADDING-TOP: 0.3em; POSITION: absolute; TEXT-ALIGN: =
center
}
.status-msg-hidden {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; VISIBILITY: hidden; =
PADDING-BOTTOM: 0.3em; PADDING-TOP: 0.3em
}
.status-msg-wrap A {
	PADDING-LEFT: 0.4em; TEXT-DECORATION: underline
}

------=_NextPart_000_0000_01C76C7E.1EED5D60
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www2.blogger.com/css/blog_controls.css

.item-control {
	DISPLAY: none
}
.item-control A {
	TEXT-DECORATION: none! important
}
.item-action A {
	TEXT-DECORATION: none! important
}
.widget-item-control {
	FLOAT: right
}
.quick-edit-icon {
	PADDING-RIGHT: 9px; PADDING-LEFT: 9px; BACKGROUND: =
url(/img/icon18_edit_allbkg.gif) no-repeat left 50%; PADDING-BOTTOM: =
9px; MARGIN: 0px 0px 0px 0.5em; PADDING-TOP: 9px
}
.widget-item-control .quick-edit-icon {
	BACKGROUND: url(/img/icon18_wrench_allbkg.gif) no-repeat left 50%
}
.delete-comment-icon {
	PADDING-RIGHT: 7px; PADDING-LEFT: 7px; BACKGROUND: =
url(/img/icon_delete13.gif) no-repeat left 50%; PADDING-BOTTOM: 7px; =
PADDING-TOP: 7px
}
.email-post-icon {
	PADDING-RIGHT: 9px; PADDING-LEFT: 9px; BACKGROUND: =
url(/img/icon18_email.gif) no-repeat left 50%; PADDING-BOTTOM: 9px; =
MARGIN: 0px 0px 0px 0.5em; PADDING-TOP: 9px
}

------=_NextPart_000_0000_01C76C7E.1EED5D60
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www2.blogger.com/img/navbar/1/btn_search_this.gif

R0lGODlhYAAPANUAAB9YjAlCeEN6rneq3VKIuxBKf0uBtWic0C5mmjVsoTxzpwhCeBhRhm+j1ghC
d0J3q1mOwkJ4qxJLgD9ypDBikhJKgEN4rD5xozBiky9ikiVckRJKfSZdkSVdkRJJfSZdkj9xo2GV
ySZfk36x5BFEd0J4rAlDeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAABgAA8AAAb/QA8G
9CgZj8ikcslsOp/Q54VCynQqpqx2y+16v+CweDyWcCgTyYLMbrvfbsmk5FjD7/i8eLF4RBwBWQkD
IwkmIiOJIlkGIwZZiCMDhiYADY6HI1kji1kCiSMhmZuLiiaDhVuRIwJZIa2ChI+xIwRZDiZFJoEm
AwgFBaNbByEHkJoKmiYNCiYMwpxc0dCLAqK9v8FaiCYIyq9avgwjAM7klVmBEQ+AWQMHnYginQWF
I8HyBMYA99uc8tLi/YtmzR08LvmMmQAnDJwChVoCLChhIQAvSyMQZApxzZuJjJkODFjEzR/HaVqm
ITpZ7RpGjSYb2FoIqyQ4a5HSmSjxwOIWxgiiSjIaEGLAI24GRPF7doxUwKYfW/681rReOYb8gh1o
lqCBsEAlIkjMokAEBFvyRAQLQUAEgaCaxj070JakMpROqZnQF6zsWVWckl1t+6yBAG/PGAxQkExL
n4p2khIIBoBjiKvlKle6ZsBQgbfNNC8st+VyFtGmOZaTrO20ZZhJQxgCABRmJaCzAjgI206P7995
Jl6QwAu48eNhHMihoKHCAoskokufTr269evTA2Dfzr379AofMGxAEyGK+fPo05ufkIFEEAA7

------=_NextPart_000_0000_01C76C7E.1EED5D60
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www2.blogger.com/css/navbar/navbar.css?v=1

#b-navbar {
	DISPLAY: block! important; Z-INDEX: 1; MIN-HEIGHT: 24px; LEFT: 0px; =
MARGIN-BOTTOM: 10px; PADDING-BOTTOM: 4px; FONT: x-small "Trebuchet =
MS",Verdana,Arial,Sans-serif; WIDTH: 100%; COLOR: #47a; BORDER-BOTTOM: =
#024 1px solid; POSITION: absolute! important; TOP: 0px
}
.bt1 {
	FONT-SIZE: 1px; MARGIN: 0px 1px; LINE-HEIGHT: 1px; POSITION: relative; =
HEIGHT: 1px
}
.bt2 {
	PADDING-RIGHT: 2px; PADDING-LEFT: 2px; FONT-SIZE: 83%; PADDING-BOTTOM: =
2px; PADDING-TOP: 2px; POSITION: relative
}
#b-next {
	PADDING-LEFT: 5px
}
#b-search-this {
	MARGIN: 0px; TEXT-TRANSFORM: uppercase; CURSOR: pointer; WHITE-SPACE: =
nowrap; POSITION: relative; TEXT-DECORATION: none
}
#b-flag-this {
	PADDING-LEFT: 5px; MARGIN: 0px; TEXT-TRANSFORM: uppercase; CURSOR: =
pointer; WHITE-SPACE: nowrap; POSITION: relative; TEXT-DECORATION: none
}
#b-navbar #b-logo {
	BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; LEFT: 5px; =
BORDER-BOTTOM-WIDTH: 0px; POSITION: absolute! important; TOP: 0.15em; =
BORDER-RIGHT-WIDTH: 0px
}

@media All   =20
{
#b-search {
	BACKGROUND: url(../../img/navbar/corner.gif) #147 no-repeat left =
bottom; MARGIN: 0px 0px 0px 34px; HEIGHT: 1em
}
#b-search TABLE {
	PADDING-RIGHT: 5px
}
#b-search TD {
	FONT-SIZE: 80%; LINE-HEIGHT: 0.8em
}
#b-more {
	FLOAT: right
}
#b-searchbtn {
	MARGIN-RIGHT: 5px
}
#b-more {
	FLOAT: right
}
#b-search TABLE {
	PADDING-RIGHT: 2px; PADDING-LEFT: 2px; FLOAT: left; PADDING-BOTTOM: =
1px; PADDING-TOP: 1px
}
#b-search A {
	LINE-HEIGHT: 1em; TEXT-DECORATION: none
}
#b-search A:hover {
	LINE-HEIGHT: 1em; TEXT-DECORATION: none
}
#b-search TD {
	LINE-HEIGHT: 0.8; PADDING-TOP: 2px
}
#b-search TD TD {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; =
PADDING-TOP: 0px
}
#b-searchbtn {
	DISPLAY: block
}

}

@media Handheld   =20
{
#b-search {
	DISPLAY: none! important
}
#b-more {
	DISPLAY: none! important
}
    }
.navbar-right {
	PADDING-RIGHT: 10px
}
TD.navbutton {
	PADDING-RIGHT: 5px; PADDING-TOP: 0.3em
}
TD.navsearch {
	PADDING-LEFT: 5px
}
#b-query {
	VERTICAL-ALIGN: top; WIDTH: 12em; MARGIN-RIGHT: 0.25em
}
#b-query {
	FONT-SIZE: x-small! important
}

@media All   =20
{
BODY DIV.b-mobile {
	DISPLAY: none
}
#b-sms {
	DISPLAY: none! important
}

}

@media Handheld   =20
{
BODY DIV.b-mobile {
	DISPLAY: block
}
#b-sms {
	PADDING-RIGHT: 7px; DISPLAY: block! important; PADDING-LEFT: 7px; =
FONT-SIZE: 100%; PADDING-BOTTOM: 4px; MARGIN: 0px 0px 0px 100px; =
LINE-HEIGHT: 1em; PADDING-TOP: 4px; TEXT-ALIGN: left
}
#b-sms A {
	LINE-HEIGHT: 1em; MARGIN-RIGHT: 0.5em; WHITE-SPACE: nowrap; =
TEXT-DECORATION: none
}
#b-sms A:hover {
	COLOR: #fff; TEXT-DECORATION: underline
}

}

@media All   =20
{
#flagi {
	PADDING-RIGHT: 1px; DISPLAY: none; PADDING-LEFT: 1px; Z-INDEX: 300; =
PADDING-BOTTOM: 1px; PADDING-TOP: 1px; TOP: 7px; BACKGROUND-COLOR: #333
}
#unflagi {
	PADDING-RIGHT: 1px; DISPLAY: none; PADDING-LEFT: 1px; Z-INDEX: 300; =
PADDING-BOTTOM: 1px; PADDING-TOP: 1px; TOP: 7px; BACKGROUND-COLOR: #333
}

}

@media Handheld   =20
{
#flagi {
	DISPLAY: none! important
}
#unflagi {
	DISPLAY: none! important
}
    }
#flagi-body {
	PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-WEIGHT: bold; FONT-SIZE: =
10px; PADDING-BOTTOM: 3px; LINE-HEIGHT: 14px; PADDING-TOP: 3px; =
FONT-FAMILY: "Trebuchet MS", Vedana, Arial, Sans-serif; =
BACKGROUND-COLOR: #ffff99; TEXT-ALIGN: center
}
#flagi-body A {
	FONT-SIZE: 10px; COLOR: #3366cc; TEXT-DECORATION: none
}
#flagi-body A:hover {
	TEXT-DECORATION: underline
}
#unflagi-body {
	PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-WEIGHT: bold; FONT-SIZE: =
10px; PADDING-BOTTOM: 3px; LINE-HEIGHT: 14px; PADDING-TOP: 3px; =
FONT-FAMILY: "Trebuchet MS", Vedana, Arial, Sans-serif; =
BACKGROUND-COLOR: #ffff99; TEXT-ALIGN: center
}
#unflagi-body A {
	FONT-SIZE: 10px; COLOR: #3366cc; TEXT-DECORATION: none
}
#unflagi-body A:hover {
	TEXT-DECORATION: underline
}

------=_NextPart_000_0000_01C76C7E.1EED5D60
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www2.blogger.com/css/navbar/1.css?v=1

#b-navbar {
	BACKGROUND: #036; COLOR: #47a; BORDER-BOTTOM: #024 1px solid
}
#b-search TABLE {
	BACKGROUND: url(../../img/navbar/1/corner.gif) #147 no-repeat left =
bottom
}
#b-query {
	BORDER-RIGHT: #47a 1px solid; BORDER-TOP: #47a 1px solid; BORDER-LEFT: =
#47a 1px solid; BORDER-BOTTOM: #47a 1px solid
}
#b-search A {
	COLOR: #9cf
}
#b-search TD {
	COLOR: #fff
}
#b-search A:hover {
	COLOR: #fff
}
#b-sms A {
	COLOR: #9cf
}
#b-sms A:hover {
	COLOR: #fff
}
#navbar-logo {
	BACKGROUND-IMAGE: url(../../img/navbar/1/logobar.gif); WIDTH: 24px; =
HEIGHT: 24px
}
#b-search-this {
	BACKGROUND: #114477
}
.bt1 {
	BACKGROUND-COLOR: #4477aa
}
.bt2 {
	BORDER-RIGHT: #4477aa 1px solid; BORDER-LEFT: #4477aa 1px solid; COLOR: =
#99ccff; BACKGROUND-COLOR: #114477
}
DIV.bt2:hover {
	BACKGROUND-COLOR: #4477aa
}
#bt-flag {
	PADDING-LEFT: 8px; BACKGROUND: url(../../img/navbar/1/flag.gif) =
no-repeat left 50%
}

------=_NextPart_000_0000_01C76C7E.1EED5D60
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www2.blogger.com/js/cookies.common.js

// Copyright 2005, Google Inc.=0A=
// =0A=
// Operations on cookies that are common across our pages.=0A=
//=0A=
// Original Author: Pal Takacsi-Nagy (pal@google.com)=0A=
=0A=
=0A=
/**=0A=
 * Sets a Cookie with the given name and value.=0A=
 *=0A=
 * name       Name of the cookie=0A=
 * value      Value of the cookie=0A=
 * [expires]  Expiration date of the cookie (default: end of current =
session)=0A=
 * [path]     Path where the cookie is valid (default: path of calling =
document)=0A=
 * [domain]   Domain where the cookie is valid=0A=
 *              (default: domain of calling document)=0A=
 * [secure]   Boolean value indicating if the cookie transmission =
requires a=0A=
 *              secure transmission=0A=
 */=0A=
function setCookie(name, value, domain, expires, path, secure) {=0A=
    document.cookie =3D name + "=3D" + escape(value) +=0A=
        ((expires) ? "; expires=3D" + expires.toGMTString() : "") +=0A=
        ((path) ? "; path=3D" + path : "") +=0A=
        ((domain) ? "; domain=3D" + domain : "") +=0A=
        ((secure) ? "; secure" : "");=0A=
}=0A=
=0A=
/**=0A=
 * Gets the value of the specified cookie.=0A=
 *=0A=
 * name  Name of the desired cookie.=0A=
 *=0A=
 * Returns a string containing value of specified cookie,=0A=
 *   or null if cookie does not exist.=0A=
 */=0A=
function getCookie(name) {=0A=
    var dc =3D document.cookie;=0A=
    var prefix =3D name + "=3D";=0A=
    var begin =3D dc.indexOf("; " + prefix);=0A=
=0A=
    if (begin =3D=3D -1) {=0A=
        begin =3D dc.indexOf(prefix);=0A=
        if (begin !=3D 0) return null;=0A=
    } else {=0A=
        begin +=3D 2;=0A=
    }=0A=
=0A=
    var end =3D document.cookie.indexOf(";", begin);=0A=
=0A=
    if (end =3D=3D -1) {=0A=
        end =3D dc.length;=0A=
    }=0A=
=0A=
    return unescape(dc.substring(begin + prefix.length, end));=0A=
}=0A=

------=_NextPart_000_0000_01C76C7E.1EED5D60
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www2.blogger.com/app/scripts/common.js

// Copied from .../google3/javascript/common.js=0A=
=0A=
//-----------------------------------------------------------------------=
-=0A=
// This file contains common utilities and basic javascript =
infrastructure.=0A=
//=0A=
// Notes:=0A=
// * Press 'D' to toggle debug mode.=0A=
//=0A=
// Functions:=0A=
//=0A=
// - Assertions=0A=
// DEPRECATED: Use assert.js=0A=
// AssertTrue(): assert an expression. Throws an exception if false.=0A=
// Fail(): Throws an exception. (Mark block of code that should be =
unreachable)=0A=
// AssertEquals(): assert that two values are equal.=0A=
// AssertNumArgs(): assert number of arguments for the function=0A=
// AssertType(): assert that a value has a particular type=0A=
//=0A=
// - Cookies=0A=
// SetCookie(): Sets a cookie.=0A=
// ExpireCookie(): Expires a cookie.=0A=
// GetCookie(): Gets a cookie value.=0A=
//=0A=
// - Dynamic HTML/DOM utilities=0A=
// MaybeGetElement(): get an element by its id=0A=
// GetElement(): get an element by its id=0A=
// GetParentNode(): Get the parent of an element=0A=
// GetAttribute(): Get attribute value of a DOM node=0A=
// SetInnerHTML(): set the inner HTML of a node=0A=
// GetInnerHTML(): get the inner HTML of a node=0A=
// ClearInnerHTML(): clear the inner HTML of a node=0A=
// SetCssStyle(): Sets a CSS property of a node.=0A=
// GetStyleProperty(): Get CSS property from a style attribute string=0A=
// ShowElement(): Show/hide element by setting the "display" css =
property.=0A=
// ShowBlockElement(): Show/hide block element=0A=
// SetButtonText(): Set the text of a button element.=0A=
// AppendNewElement(): Create and append a html element to a parent node.=0A=
// CreateDIV(): Create a DIV element and append to the document.=0A=
// CreateIFRAME(): Create an IFRAME and append to the document.=0A=
// HasClass(): check if element has a given class=0A=
// AddClass(): add a class to an element=0A=
// RemoveClass(): remove a class from an element=0A=
//=0A=
// - Window/Screen utiltiies=0A=
// GetPageOffsetLeft(): get the X page offset of an element=0A=
// GetPageOffsetTop(): get the Y page offset of an element=0A=
// GetPageOffset(): get the X and Y page offsets of an element=0A=
// GetPageOffsetRight() : get X page offset of the right side of an =
element=0A=
// GetPageOffsetRight() : get Y page offset of the bottom of an element=0A=
// GetScrollTop(): get the vertical scrolling pos of a window.=0A=
// GetScrollLeft(): get the horizontal scrolling pos of a window=0A=
// IsScrollAtEnd():  check if window scrollbar has reached its maximum =
offset=0A=
// ScrollTo(): scroll window to a position=0A=
// ScrollIntoView(): scroll window so that an element is in view.=0A=
// GetWindowWidth(): get width of a window.=0A=
// GetWindowHeight(): get height of a window=0A=
// GetAvailScreenWidth(): get available screen width=0A=
// GetAvailScreenHeight(): get available screen height=0A=
// GetNiceWindowHeight(): get a nice height for a new browser window.=0A=
// Open{External/Internal}Window(): open a separate window=0A=
// CloseWindow(): close a window=0A=
//=0A=
// - DOM walking utilities=0A=
// AnnotateTerms(): find terms in a node and decorate them with some tag=0A=
// AnnotateText(): find terms in a text node and decorate them with some =
tag=0A=
//=0A=
// - String utilties=0A=
// HtmlEscape(): html escapes a string=0A=
// HtmlUnescape(): remove html-escaping.=0A=
// QuoteEscape(): escape " quotes.=0A=
// CollapseWhitespace(): collapse multiple whitespace into one =
whitespace.=0A=
// Trim(): trim whitespace on ends of string=0A=
// IsEmpty(): check if CollapseWhiteSpace(String) =3D=3D ""=0A=
// IsLetterOrDigit(): check if a character is a letter or a digit=0A=
// ConvertEOLToLF(): normalize the new-lines of a string.=0A=
// HtmlEscapeInsertWbrs(): HtmlEscapes and inserts <wbr>s (word break =
tags)=0A=
//   after every n non-space chars and/or after or before certain =
special chars=0A=
//=0A=
// - TextArea utilities=0A=
// GetCursorPos(): finds the cursor position of a textfield=0A=
// SetCursorPos(): sets the cursor position in a textfield=0A=
//=0A=
// - Array utilities=0A=
// FindInArray(): do a linear search to find an element value.=0A=
// DeleteArrayElement(): return a new array with a specific value =
removed.=0A=
// CloneObject(): clone an object, copying its values recursively.=0A=
// CloneEvent(): clone an event; cannot use CloneObject because it=0A=
//               suffers from infinite recursion=0A=
//=0A=
// - Formatting utilities=0A=
// PrintArray(): used to print/generate HTML by combining static text=0A=
// and dynamic strings.=0A=
// ImageHtml(): create html for an img tag=0A=
// FormatJSLink(): formats a link that invokes js code when clicked.=0A=
// MakeId3(): formats an id that has two id numbers, eg, foo_3_7=0A=
//=0A=
// - Miscellaneous=0A=
// IsDefined(): returns true if argument is not undefined=0A=
//-----------------------------------------------------------------------=
-=0A=
=0A=
// browser detection=0A=
var agent =3D navigator.userAgent.toLowerCase();=0A=
var is_ie =3D (agent.indexOf('msie') !=3D -1);=0A=
//var is_ie5 =3D (agent.indexOf('msie 5') !=3D -1 && document.all);=0A=
var is_konqueror =3D (agent.indexOf('konqueror') !=3D -1);=0A=
var is_safari =3D (agent.indexOf('safari') !=3D -1) || is_konqueror;=0A=
var is_nav =3D !is_ie && !is_safari && (agent.indexOf('mozilla') !=3D =
-1);=0A=
var is_win =3D (agent.indexOf('win') !=3D -1);=0A=
delete agent;=0A=
=0A=
=0A=
var BACKSPACE_KEYCODE =3D 8;=0A=
var COMMA_KEYCODE =3D 188;                // ',' key=0A=
var DEBUG_KEYCODE =3D 68;                 // 'D' key=0A=
var DELETE_KEYCODE =3D 46;=0A=
var DOWN_KEYCODE =3D 40;                  // DOWN arrow key=0A=
var ENTER_KEYCODE =3D 13;                 // ENTER key=0A=
var ESC_KEYCODE =3D 27;                   // ESC key=0A=
var LEFT_KEYCODE =3D 37;                  // LEFT arrow key=0A=
var RIGHT_KEYCODE =3D 39;                 // RIGHT arrow key=0A=
var SPACE_KEYCODE =3D 32;                 // space bar=0A=
var TAB_KEYCODE =3D 9;                    // TAB key=0A=
var UP_KEYCODE =3D 38;                    // UP arrow key=0A=
var SHIFT_KEYCODE =3D 16;=0A=
=0A=
// This is a "constant" but has different values depending on the browser=0A=
var semicolon_keycode =3D (is_ie ? 186 : 59);=0A=
=0A=
var MAX_EMAIL_ADDRESS_LENGTH =3D 320;     // 64 + '@' + 255=0A=
var MAX_SIGNATURE_LENGTH =3D 1000;        // 1000 chars of maximum =
signature=0A=
=0A=
//-----------------------------------------------------------------------=
-=0A=
// Assertions=0A=
// DEPRECATED: Use assert.js=0A=
//-----------------------------------------------------------------------=
-=0A=
/**=0A=
 * DEPRECATED: Use assert.js=0A=
 */=0A=
function raise(msg) {=0A=
  if (typeof Error !=3D 'undefined') {=0A=
    throw new Error(msg || 'Assertion Failed');=0A=
  } else {=0A=
    throw (msg);=0A=
  }=0A=
}=0A=
=0A=
/**=0A=
 * DEPRECATED: Use assert.js=0A=
 *=0A=
 * Fail() is useful for marking logic paths that should=0A=
 * not be reached. For example, if you have a class that uses=0A=
 * ints for enums:=0A=
 *=0A=
 * MyClass.ENUM_FOO =3D 1;=0A=
 * MyClass.ENUM_BAR =3D 2;=0A=
 * MyClass.ENUM_BAZ =3D 3;=0A=
 *=0A=
 * And a switch statement elsewhere in your code that=0A=
 * has cases for each of these enums, then you can=0A=
 * "protect" your code as follows:=0A=
 *=0A=
 * switch(type) {=0A=
 *   case MyClass.ENUM_FOO: doFooThing(); break;=0A=
 *   case MyClass.ENUM_BAR: doBarThing(); break;=0A=
 *   case MyClass.ENUM_BAZ: doBazThing(); break;=0A=
 *   default:=0A=
 *     Fail("No enum in MyClass with value: " + type);=0A=
 * }=0A=
 *=0A=
 * This way, if someone introduces a new value for this enum=0A=
 * without noticing this switch statement, then the code will=0A=
 * fail if the logic allows it to reach the switch with the=0A=
 * new value, alerting the developer that he should add a=0A=
 * case to the switch to handle the new value he has introduced.=0A=
 *=0A=
 * @param {string} opt_msg to display for failure=0A=
 *                 DEFAULT: "Assertion failed"=0A=
 */=0A=
function Fail(opt_msg) {=0A=
  if (opt_msg =3D=3D=3D undefined) opt_msg =3D 'Assertion failed';=0A=
  if (IsDefined(DumpError)) DumpError(opt_msg + '\n');=0A=
  raise(opt_msg);=0A=
}=0A=
=0A=
/**=0A=
 * DEPRECATED: Use assert.js=0A=
 *=0A=
 * Asserts that an expression is true (non-zero and non-null).=0A=
 *=0A=
 * Note that it is critical not to pass logic=0A=
 * with side-effects as the expression for AssertTrue=0A=
 * because if the assertions are removed by the=0A=
 * JSCompiler, then the expression will be removed=0A=
 * as well, in which case the side-effects will=0A=
 * be lost. So instead of this:=0A=
 *=0A=
 *  AssertTrue( criticalComputation() );=0A=
 *=0A=
 * Do this:=0A=
 *=0A=
 *  var result =3D criticalComputation();=0A=
 *  AssertTrue(result);=0A=
 *=0A=
 * @param {anything} expression to evaluate=0A=
 * @param {string}   opt_msg to display if the assertion fails=0A=
 *=0A=
 */=0A=
function AssertTrue(expression, opt_msg) {=0A=
  if (!expression) {=0A=
    if (opt_msg =3D=3D=3D undefined) opt_msg =3D 'Assertion failed';=0A=
    Fail(opt_msg);=0A=
  }=0A=
}=0A=
=0A=
/**=0A=
 * DEPRECATED: Use assert.js=0A=
 *=0A=
 * Asserts that two values are the same.=0A=
 *=0A=
 * @param {anything} val1=0A=
 * @param {anything} val2=0A=
 * @param {string} opt_msg to display if the assertion fails=0A=
 */=0A=
function AssertEquals(val1, val2, opt_msg) {=0A=
  if (val1 !=3D val2) {=0A=
    if (opt_msg =3D=3D=3D undefined) {=0A=
      opt_msg =3D "AssertEquals failed: <" + val1 + "> !=3D <" + val2 + =
">";=0A=
    }=0A=
    Fail(opt_msg);=0A=
  }=0A=
}=0A=
=0A=
/**=0A=
 * DEPRECATED: Use assert.js=0A=
 *=0A=
 * Asserts that a value is of the provided type.=0A=
 *=0A=
 *   AssertType(6, Number);=0A=
 *   AssertType("ijk", String);=0A=
 *   AssertType([], Array);=0A=
 *   AssertType({}, Object);=0A=
 *   AssertType(ICAL_Date.now(), ICAL_Date);=0A=
 *=0A=
 * @param {anything} value=0A=
 * @param {constructor function} type=0A=
 * @param {string} opt_msg to display if the assertion fails=0A=
 */=0A=
function AssertType(value, type, opt_msg) {=0A=
  // for backwards compatability only=0A=
  if (typeof value =3D=3D type) return;=0A=
=0A=
  if (value || value =3D=3D "") {=0A=
    try {=0A=
      if (type =3D=3D AssertTypeMap[typeof value] || value instanceof =
type) return;=0A=
    } catch (e) { /* failure, type was an illegal argument to instanceof =
*/ }=0A=
  }=0A=
  if (opt_msg =3D=3D=3D undefined) {=0A=
    if (typeof type =3D=3D 'function') {=0A=
      var match =3D type.toString().match(/^\s*function\s+([^\s\{]+)/);=0A=
      if (match) type =3D match[1];=0A=
    }=0A=
    opt_msg =3D "AssertType failed: <" + value + "> not typeof "+ type;=0A=
  }=0A=
  Fail(opt_msg);=0A=
}=0A=
=0A=
var AssertTypeMap =3D {=0A=
  'string'  : String,=0A=
  'number'  : Number,=0A=
  'boolean' : Boolean=0A=
};=0A=
=0A=
/**=0A=
 * DEPRECATED: Use assert.js=0A=
 *=0A=
 * Asserts that the number of arguments to a=0A=
 * function is num. For example:=0A=
 *=0A=
 * function myFunc(one, two, three) [=0A=
 *   AssertNumArgs(3);=0A=
 *   ...=0A=
 * }=0A=
 *=0A=
 * myFunc(1, 2); // assertion fails!=0A=
 *=0A=
 * Note that AssertNumArgs does not take the function=0A=
 * as an argument; it is simply used in the context=0A=
 * of the function.=0A=
 *=0A=
 * @param {int} number of arguments expected=0A=
 * @param {string} opt_msg to display if the assertion fails=0A=
 */=0A=
function AssertNumArgs(num, opt_msg) {=0A=
  var caller =3D AssertNumArgs.caller;  // This is not supported in =
safari 1.0=0A=
  if (caller && caller.arguments.length !=3D num) {=0A=
    if (opt_msg =3D=3D=3D undefined) {=0A=
      opt_msg =3D caller.name + ' expected ' + num + ' arguments '=0A=
                  + ' but received ' + caller.arguments.length;=0A=
    }=0A=
    Fail(opt_msg);=0A=
  }=0A=
}=0A=
=0A=
//-----------------------------------------------------------------------=
-=0A=
// Cookies=0A=
//-----------------------------------------------------------------------=
-=0A=
var ILLEGAL_COOKIE_CHARS_RE =3D /[\s;]/=0A=
/**=0A=
 * Sets a cookie.=0A=
 * The max_age can be -1 to set a session cookie. To expire cookies, use=0A=
 * ExpireCookie() instead.=0A=
 *=0A=
 * @param name The cookie name.=0A=
 * @param value The cookie value.=0A=
 * @param opt_max_age The max age in seconds (from now). Use -1 to set a=0A=
 *   session cookie. If not provided, the default is -1 (i.e. set a =
session=0A=
 *   cookie).=0A=
 * @param opt_path The path of the cookie, or null to not specify a path=0A=
 *   attribute (browser will use the full request path). If not =
provided, the=0A=
 *   default is '/' (i.e. path=3D/).=0A=
 * @param opt_domain The domain of the cookie, or null to not specify a =
domain=0A=
 *   attribute (brower will use the full request host name). If not =
provided,=0A=
 *   the default is null (i.e. let browser use full request host name).=0A=
 * @return Void.=0A=
 */=0A=
function SetCookie(name, value, opt_max_age, opt_path, opt_domain) {=0A=
=0A=
  value =3D '' + value;=0A=
  AssertTrue((typeof name =3D=3D 'string' &&=0A=
              typeof value =3D=3D 'string' &&=0A=
              !name.match(ILLEGAL_COOKIE_CHARS_RE) &&=0A=
              !value.match(ILLEGAL_COOKIE_CHARS_RE)),=0A=
             'trying to set an invalid cookie');=0A=
=0A=
  if (!IsDefined(opt_max_age)) opt_max_age =3D -1;=0A=
  if (!IsDefined(opt_path)) opt_path =3D '/';=0A=
  if (!IsDefined(opt_domain)) opt_domain =3D null;=0A=
=0A=
  var domain_str =3D (opt_domain =3D=3D null) ? '' : ';domain=3D' + =
opt_domain;=0A=
  var path_str =3D (opt_path =3D=3D null) ? '' : ';path=3D' + opt_path;=0A=
=0A=
  var expires_str;=0A=
=0A=
  // Case 1: Set a session cookie.=0A=
  if (opt_max_age < 0) {=0A=
    expires_str =3D '';=0A=
=0A=
  // Case 2: Expire the cookie.=0A=
  // Note: We don't tell people about this option in the function doc =
because=0A=
  // we prefer people to use ExpireCookie() to expire cookies.=0A=
  } else if (opt_max_age =3D=3D 0) {=0A=
    // Note: Don't use Jan 1, 1970 for date because NS 4.76 will try to =
convert=0A=
    // it to local time, and if the local time is before Jan 1, 1970, =
then the=0A=
    // browser will ignore the Expires attribute altogether.=0A=
    var pastDate =3D new Date(1970, 1 /*Feb*/, 1);  // Feb 1, 1970=0A=
    expires_str =3D ';expires=3D' + pastDate.toUTCString();=0A=
=0A=
  // Case 3: Set a persistent cookie.=0A=
  } else {=0A=
    var futureDate =3D new Date(Now() + opt_max_age * 1000);=0A=
    expires_str =3D ';expires=3D' + futureDate.toUTCString();=0A=
  }=0A=
=0A=
  document.cookie =3D name + '=3D' + value + domain_str + path_str + =
expires_str;=0A=
}=0A=
=0A=
var EXPIRED_COOKIE_VALUE =3D 'EXPIRED';=0A=
=0A=
/**=0A=
 * Expires a cookie.=0A=
 *=0A=
 * @param name The cookie name.=0A=
 * @param opt_path The path of the cookie, or null to expire a cookie =
set at=0A=
 *   the full request path. If not provided, the default is '/' (i.e. =
path=3D/).=0A=
 * @param opt_domain The domain of the cookie, or null to expire a =
cookie set=0A=
 *   at the full request host name. If not provided, the default is null =
(i.e.=0A=
 *   cookie at full request host name).=0A=
 * @return Void.=0A=
 */=0A=
function ExpireCookie(name, opt_path, opt_domain) {=0A=
  SetCookie(name, EXPIRED_COOKIE_VALUE, 0, opt_path, opt_domain);=0A=
}=0A=
=0A=
/** Returns the value for the first cookie with the given name=0A=
 * @param name : string=0A=
 * @return a string or the empty string if no cookie found.=0A=
 */=0A=
function GetCookie(name) {=0A=
  var nameeq =3D name + "=3D";=0A=
  var cookie =3D String(document.cookie);=0A=
  for (var pos =3D -1; (pos =3D cookie.indexOf(nameeq, pos + 1)) >=3D =
0;) {=0A=
    var i =3D pos;=0A=
    // walk back along string skipping whitespace and looking for a ; =
before=0A=
    // the name to make sure that we don't match cookies whose name =
contains=0A=
    // the given name as a suffix.=0A=
    while (--i >=3D 0) {=0A=
      var ch =3D cookie.charAt(i);=0A=
      if (ch =3D=3D ';') {=0A=
        i =3D -1;  // indicate success=0A=
        break;=0A=
      } else if (' \t'.indexOf(ch) < 0) {=0A=
        break;=0A=
      }=0A=
    }=0A=
    if (-1 =3D=3D=3D i) {  // first cookie in the string or we found a ;=0A=
      var end =3D cookie.indexOf(';', pos);=0A=
      if (end < 0) { end =3D cookie.length; }=0A=
      return cookie.substring(pos + nameeq.length, end);=0A=
    }=0A=
  }=0A=
  return "";=0A=
}=0A=
=0A=
=0A=
//-----------------------------------------------------------------------=
-=0A=
// Time=0A=
//-----------------------------------------------------------------------=
-=0A=
function Now() {=0A=
  return (new Date()).getTime();=0A=
}=0A=
=0A=
//-----------------------------------------------------------------------=
-=0A=
// Dynamic HTML/DOM utilities=0A=
//-----------------------------------------------------------------------=
-=0A=
// Gets a element by its id, may return null=0A=
function MaybeGetElement(win, id) {=0A=
  return win.document.getElementById(id);=0A=
}=0A=
=0A=
// Same as MaybeGetElement except that it throws an exception if it's =
null=0A=
function GetElement(win, id) {=0A=
  var el =3D win.document.getElementById(id);=0A=
  if (!el) {=0A=
    DumpError("Element " + id + " not found.");=0A=
  }=0A=
  return el;=0A=
}=0A=
=0A=
// Gets elements by its id/name=0A=
// IE treats getElementsByName as searching over ids, while Moz use =
names.=0A=
// so tags must have both id and name as the same string=0A=
function GetElements(win, id) {=0A=
  return win.document.getElementsByName(id);=0A=
}=0A=
=0A=
// Gets the parent of a html element.=0A=
function GetParentNode(n) {=0A=
  try {=0A=
    return n.parentNode;=0A=
  } catch (e) {=0A=
    // n.parentNode may throw a permission-denied exception on mozilla=0A=
    // (e.g. on text element), ignore this exception.=0A=
    return n;=0A=
  }=0A=
}=0A=
=0A=
function IsDescendant(parent, child) {=0A=
  do {=0A=
    if (parent =3D=3D=3D child) return true;=0A=
    child =3D GetParentNode(child);=0A=
  } while (child && child !=3D=3D document.body);=0A=
  return false;=0A=
}=0A=
=0A=
// Get attribute value of a DOM node=0A=
function GetAttribute(node, attribute) {=0A=
  if (!node.getAttribute) {=0A=
    return null;=0A=
  }=0A=
  var attr =3D node.getAttribute(attribute);=0A=
  if (is_ie && attribute =3D=3D "style") {=0A=
    return attr.value;=0A=
  } else {=0A=
    return attr;=0A=
  }=0A=
}=0A=
=0A=
// Sets inner html of a html element=0A=
function SetInnerHTML(win, id, html) {=0A=
  try {=0A=
    GetElement(win, id).innerHTML =3D html;=0A=
  } catch (ex) {=0A=
    DumpException(ex);=0A=
  }=0A=
}=0A=
=0A=
// Gets inner-html of a html element=0A=
function GetInnerHTML(win, id) {=0A=
  try {=0A=
    return GetElement(win, id).innerHTML;=0A=
  } catch (ex) {=0A=
    DumpException(ex);=0A=
    return "";=0A=
  }=0A=
}=0A=
=0A=
// Clears inner html of a html element=0A=
function ClearInnerHTML(win, id) {=0A=
  try {=0A=
    GetElement(win, id).innerHTML =3D "";=0A=
  } catch (ex) {=0A=
    DumpException(ex);=0A=
  }=0A=
}=0A=
=0A=
// Sets a CSS style of an element=0A=
function SetCssStyle(win, id, name, value) {=0A=
  try {=0A=
    var elem =3D GetElement(win, id);=0A=
    elem.style[name] =3D value;=0A=
  } catch (ex) {=0A=
    DumpException(ex);=0A=
  }=0A=
}=0A=
=0A=
// Get CSS property from a style attribute string=0A=
function GetStyleProperty(style, name) {=0A=
  var i =3D style.indexOf(name);=0A=
  if (i !=3D -1) {=0A=
    var j =3D style.indexOf(";", i);=0A=
    if (j =3D=3D -1) {=0A=
      j =3D style.length;=0A=
    }=0A=
    // the +1 below is for the colon following the attribute name=0A=
    return CollapseWhitespace(style.substring(i + name.length + 1, j));=0A=
  }=0A=
  return null;=0A=
}=0A=
=0A=
// Show/hide an element.=0A=
function ShowElement(el, show) {=0A=
  el.style.display =3D show ? "" : "none";=0A=
}=0A=
=0A=
// Show/hide a block element.=0A=
// ShowElement() doesn't work if object has an initial class with =
display:none=0A=
function ShowBlockElement(el, show) {=0A=
  el.style.display =3D show ? "block" : "none";=0A=
}=0A=
=0A=
// Show/hide an inline element.=0A=
// ShowElement() doesn't work when an element starts off display:none.=0A=
function ShowInlineElement(el, show) {=0A=
  el.style.display =3D show ? "inline" : "none";=0A=
}=0A=
=0A=
// Set the text of a button. This is to get around a bug in mozilla,=0A=
// where we can't set the text of a button by setting innerHTML.=0A=
function SetButtonText(button, text) {=0A=
  button.childNodes[0].nodeValue =3D text;=0A=
}=0A=
=0A=
// Append a new HTML element to a HTML node.=0A=
function AppendNewElement(win, parent, tag) {=0A=
  var e =3D win.document.createElement(tag);=0A=
  parent.appendChild(e);=0A=
  return e;=0A=
}=0A=
=0A=
// Finds the child with the given ID, or null if there is node.=0A=
// This does not search the children's children.=0A=
function FindChildWithID(parent, id) {=0A=
  var el;=0A=
  for (el =3D parent.firstChild; el && el.id !=3D id; el =3D =
el.nextSibling) {=0A=
    // skip=0A=
  }=0A=
  return el;=0A=
}=0A=
=0A=
// Adds a disabled option to the given menu=0A=
function AddMenuDisabledOption(win, menu, html) {=0A=
  var op =3D AppendNewElement(win, menu, 'OPTION');=0A=
  op.disabled =3D true;=0A=
  op.innerHTML =3D html;=0A=
=0A=
  return op;=0A=
}=0A=
=0A=
// Adds a option to the given menu=0A=
function AddMenuOption(win, menu, value, html) {=0A=
  var op =3D AppendNewElement(win, menu, 'OPTION');=0A=
  op.value =3D value;=0A=
  op.innerHTML =3D html;=0A=
=0A=
  return op;=0A=
}=0A=
=0A=
// Create a new DIV (append it to the end of the document)=0A=
function CreateDIV(win, id) {=0A=
  var div =3D MaybeGetElement(win, id);=0A=
  if (!div) {=0A=
    div =3D AppendNewElement(win, win.document.body, "div");=0A=
    div.id =3D id;=0A=
  }=0A=
  return div;=0A=
}=0A=
=0A=
// Create a new IFRAME (append it to the end of the document)=0A=
function CreateIFRAME(win, id, url) {=0A=
  var iframe =3D MaybeGetElement(win, id);=0A=
  if (!iframe) {=0A=
    // We cannot create an IFRAME directly (IE doesn't allow it), so we=0A=
    // create a DIV and then insert an IFRAME.=0A=
    // We also give the IFRAME a name (same as id)=0A=
    var div =3D AppendNewElement(win, win.document.body, "div");=0A=
    div.innerHTML =3D "<iframe id=3D" + id + " name=3D" + id +=0A=
             " src=3D" + url + "></iframe>";=0A=
    iframe =3D GetElement(win, id);=0A=
  }=0A=
  return iframe;=0A=
}=0A=
=0A=
// Create a new TR containing the given td's=0A=
function Tr(win, tds) {=0A=
  var tr =3D win.document.createElement("TR");=0A=
  for (var i =3D 0; i < tds.length; i++) {=0A=
    tr.appendChild(tds[i]);=0A=
  }=0A=
  return tr;=0A=
}=0A=
=0A=
// Create a new TD, with an optional colspan=0A=
function Td(win, opt_colspan) {=0A=
  var td =3D win.document.createElement("TD");=0A=
  if (opt_colspan) {=0A=
    td.colSpan =3D opt_colspan;=0A=
  }=0A=
  return td;=0A=
}=0A=
=0A=
=0A=
// Check if an element has a given class=0A=
function HasClass(el, cl) {=0A=
  if (el =3D=3D null || el.className =3D=3D null) return false;=0A=
  var classes =3D el.className.split(" ");=0A=
  for (var i =3D 0; i < classes.length; i++) {=0A=
    if (classes[i] =3D=3D cl) {=0A=
      return true;=0A=
    }=0A=
  }=0A=
  return false;=0A=
}=0A=
=0A=
// Add a class to element=0A=
function AddClass(el, cl) {=0A=
  if (HasClass(el, cl)) return;=0A=
  el.className +=3D " " + cl;=0A=
}=0A=
=0A=
// Remove a class from an element=0A=
function RemoveClass(el, cl) {=0A=
  if (el.className =3D=3D null) return;=0A=
  var classes =3D el.className.split(" ");=0A=
  var result =3D [];=0A=
  var changed =3D false;=0A=
  for (var i =3D 0; i < classes.length; i++) {=0A=
    if (classes[i] !=3D cl) {=0A=
      if (classes[i]) { result.push(classes[i]); }=0A=
    } else {=0A=
      changed =3D true;=0A=
    }=0A=
  }=0A=
  if (changed) { el.className =3D result.join(" "); }=0A=
}=0A=
=0A=
// Performs an in-order traversal of the tree rooted at the given node=0A=
// (excluding the root node) and returns an array of nodes that match the=0A=
// given selector. The selector must implement the method:=0A=
//=0A=
// boolean select(node);=0A=
//=0A=
// This method is a generalization of the DOM method =
"getElementsByTagName"=0A=
//=0A=
function GetElementsBySelector(root, selector) {=0A=
  var nodes =3D [];=0A=
  for (var child =3D root.firstChild; child; child =3D =
child.nextSibling) {=0A=
    AddElementBySelector_(child, selector, nodes);=0A=
  }=0A=
  return nodes;=0A=
}=0A=
=0A=
// Recursive helper for GetElemnetsBySelector()=0A=
function AddElementBySelector_(root, selector, nodes) {=0A=
  // First test the parent=0A=
  if (selector.select(root)) {=0A=
    nodes.push(root);=0A=
  }=0A=
=0A=
  // Then recurse through the children=0A=
  for (var child =3D root.firstChild; child; child =3D =
child.nextSibling) {=0A=
    AddElementBySelector_(child, selector, nodes);=0A=
  }=0A=
}=0A=
=0A=
//-----------------------------------------------------------------------=
-=0A=
// Window/screen utilities=0A=
// TODO: these should be renamed (e.g. GetWindowWidth to =
GetWindowInnerWidth=0A=
// and moved to geom.js)=0A=
//-----------------------------------------------------------------------=
-=0A=
// Get page offset of an element=0A=
function GetPageOffsetLeft(el) {=0A=
  var x =3D el.offsetLeft;=0A=
  if (el.offsetParent !=3D null)=0A=
    x +=3D GetPageOffsetLeft(el.offsetParent);=0A=
  return x;=0A=
}=0A=
=0A=
// Get page offset of an element=0A=
function GetPageOffsetTop(el) {=0A=
  var y =3D el.offsetTop;=0A=
  if (el.offsetParent !=3D null)=0A=
    y +=3D GetPageOffsetTop(el.offsetParent);=0A=
  return y;=0A=
}=0A=
=0A=
// Get page offset of an element=0A=
function GetPageOffset(el) {=0A=
  var x =3D el.offsetLeft;=0A=
  var y =3D el.offsetTop;=0A=
  if (el.offsetParent !=3D null) {=0A=
    var pos =3D GetPageOffset(el.offsetParent);=0A=
    x +=3D pos.x;=0A=
    y +=3D pos.y;=0A=
  }=0A=
  return {x: x, y: y};=0A=
}=0A=
=0A=
function GetPageOffsetRight(el) {=0A=
  return GetPageOffsetLeft(el) + el.offsetWidth;=0A=
}=0A=
=0A=
function GetPageOffsetBottom(el) {=0A=
  return GetPageOffsetTop(el) + el.offsetHeight;=0A=
}=0A=
=0A=
// Get the y position scroll offset.=0A=
function GetScrollTop(win) {=0A=
  // all except Explorer=0A=
  if ("pageYOffset" in win) {=0A=
    return win.pageYOffset;=0A=
  }=0A=
  // Explorer 6 Strict Mode=0A=
  else if ("documentElement" in win.document &&=0A=
           "scrollTop" in win.document.documentElement) {=0A=
    return win.document.documentElement.scrollTop;=0A=
  }=0A=
  // other Explorers=0A=
  else if ("scrollTop" in win.document.body) {=0A=
    return win.document.body.scrollTop;=0A=
  }=0A=
=0A=
  return 0;=0A=
}=0A=
=0A=
// Get the x position scroll offset.=0A=
function GetScrollLeft(win) {=0A=
  // all except Explorer=0A=
  if ("pageXOffset" in win) {=0A=
    return win.pageXOffset;=0A=
  }=0A=
  // Explorer 6 Strict Mode=0A=
  else if ("documentElement" in win.document &&=0A=
           "scrollLeft" in win.document.documentElement) {=0A=
    return win.document.documentElement.scrollLeft;=0A=
  }=0A=
  // other Explorers=0A=
  else if ("scrollLeft" in win.document.body) {=0A=
    return win.document.body.scrollLeft;=0A=
  }=0A=
=0A=
  return 0;=0A=
}=0A=
=0A=
/**=0A=
 * Checks if window scrollbar has reached its maximum offset=0A=
 *=0A=
 * @param win a window object=0A=
 * @param opt_isHoriz true if horizontal bar, false if vertical=0A=
 */=0A=
function IsScrollAtEnd(win, opt_isHoriz) {=0A=
  var total =3D=0A=
    (opt_isHoriz) ? document.body.offsetWidth : =
document.body.offsetHeight;=0A=
  var inner =3D=0A=
    (opt_isHoriz) ? GetWindowWidth(win) : GetWindowHeight(win);=0A=
  var offset =3D=0A=
    (opt_isHoriz) ? GetScrollLeft(win) : GetScrollTop(win);=0A=
=0A=
  return (inner + offset >=3D total || total < inner);=0A=
}=0A=
=0A=
// Scroll window to pos=0A=
// position: 0 =3D top, 0.5 =3D middle, 1 =3D bottom=0A=
function ScrollTo(win, el, position) {=0A=
  var y =3D GetPageOffsetTop(el);=0A=
  y -=3D GetWindowHeight(win) * position;=0A=
  win.scrollTo(0, y);=0A=
}=0A=
=0A=
// Scroll so that as far as possible the entire element is in view.=0A=
var ALIGN_BOTTOM =3D 'b';=0A=
var ALIGN_MIDDLE =3D 'm';=0A=
var ALIGN_TOP =3D 't';=0A=
function ScrollIntoView(win, el, alignment) {=0A=
  var el_top =3D GetPageOffsetTop(el);=0A=
  var el_bottom =3D el_top + el.offsetHeight;=0A=
  var win_top =3D GetScrollTop(win);=0A=
  var win_height =3D GetWindowHeight(win);=0A=
  var win_bottom =3D win_top + win_height;=0A=
=0A=
  // Out of view?=0A=
  if (el_top < win_top ||=0A=
      el_bottom > win_bottom) {=0A=
=0A=
    var scrollto_y;=0A=
    if (alignment =3D=3D ALIGN_BOTTOM) {=0A=
      scrollto_y =3D el_bottom - win_height + 5;=0A=
    } else if (alignment =3D=3D ALIGN_MIDDLE) {=0A=
      scrollto_y =3D (el_top + el_bottom) / 2 - win_height/2;=0A=
    } else {=0A=
      scrollto_y =3D el_top - 5;        // ALIGN_TOP=0A=
    }=0A=
=0A=
    Debug("Scrolling to " + scrollto_y);=0A=
    win.scrollTo(0, scrollto_y);=0A=
  }=0A=
}=0A=
=0A=
function IsElementVisible(win, id) {=0A=
  var el =3D MaybeGetElement(win, id);=0A=
  if (el =3D=3D null) {=0A=
    return false;=0A=
  }=0A=
  var el_top =3D GetPageOffsetTop(el);=0A=
  var el_bottom =3D el_top + el.offsetHeight;=0A=
  var win_top =3D GetScrollTop(win);=0A=
  var win_bottom =3D win_top + GetWindowHeight(win);=0A=
  if (el_top >=3D win_top && el_bottom <=3D win_bottom) {=0A=
    return true;=0A=
  }=0A=
  return false;=0A=
}=0A=
=0A=
function GetWindowWidth(win) {=0A=
  // all except Explorer=0A=
  if ("innerWidth" in win) {=0A=
    return win.innerWidth;=0A=
  }=0A=
  // Explorer 6 Strict Mode=0A=
  else if ("documentElement" in win.document &&=0A=
           "clientWidth" in win.document.documentElement) {=0A=
    return win.document.documentElement.clientWidth;=0A=
  }=0A=
  // other Explorers=0A=
  else if ("clientWidth" in win.document.body) {=0A=
    return win.document.body.clientWidth;=0A=
  }=0A=
=0A=
  return 0;=0A=
}=0A=
=0A=
function GetWindowHeight(win) {=0A=
  // all except Explorer=0A=
  if ("innerHeight" in win) {=0A=
    return win.innerHeight;=0A=
  }=0A=
  // Explorer 6 Strict Mode=0A=
  else if ("documentElement" in win.document &&=0A=
           "clientHeight" in win.document.documentElement) {=0A=
    return win.document.documentElement.clientHeight;=0A=
  }=0A=
  // other Explorers=0A=
  else if ("clientHeight" in win.document.body) {=0A=
    return win.document.body.clientHeight;=0A=
  }=0A=
=0A=
  return 0;=0A=
}=0A=
=0A=
function GetAvailScreenWidth(win) {=0A=
  return win.screen.availWidth;=0A=
}=0A=
=0A=
function GetAvailScreenHeight(win) {=0A=
  return win.screen.availHeight;=0A=
}=0A=
=0A=
// Returns a "nice" window height.=0A=
// Use the screen height. (Or should we use the height of the current =
window?)=0A=
function GetNiceWindowHeight(win) {=0A=
  return Math.floor(0.8 * GetAvailScreenHeight(win));=0A=
}=0A=
=0A=
// Used for horizontally centering a new window of the given width in the=0A=
// available screen. Set the new window's distance from the left of the =
screen=0A=
// equal to this function's return value.=0A=
// Params: width: the width of the new window=0A=
// Returns: the distance from the left edge of the screen for the new =
window to=0A=
//   be horizontally centered=0A=
function GetCenteringLeft(win, width) {=0A=
  return (win.screen.availWidth - width) >> 1;=0A=
}=0A=
=0A=
// Used for vertically centering a new window of the given height in the=0A=
// available screen. Set the new window's distance from the top of the =
screen=0A=
// equal to this function's return value.=0A=
// Params: height: the height of the new window=0A=
// Returns: the distance from the top edge of the screen for the new =
window to=0A=
//   be vertically aligned.=0A=
function GetCenteringTop(win, height) {=0A=
  return (win.screen.availHeight - height) >> 1;=0A=
}=0A=
=0A=
/*=0A=
 * Opens a child popup window that has no browser toolbar/decorations.=0A=
 * (Copied from caribou's common.js library with small modifications.)=0A=
 *=0A=
 * @param url the URL for the new window (Note: this will be =
unique-ified)=0A=
 * @param opt_name the name of the new window=0A=
 * @param opt_width the width of the new window=0A=
 * @param opt_height the height of the new window=0A=
 * @param opt_center if true, the new window is centered in the =
available screen=0A=
 * @param opt_hide_scrollbars if true, the window hides the scrollbars=0A=
 * @param opt_noresize if true, makes window unresizable=0A=
 * @param opt_blocked_msg message warning that the popup has been blocked=0A=
 * @return a reference to the new child window=0A=
 */=0A=
function Popup(url, opt_name, opt_width, opt_height, opt_center,=0A=
               opt_hide_scrollbars, opt_noresize, opt_blocked_msg) {=0A=
  if (!opt_height) {=0A=
    opt_height =3D Math.floor(GetWindowHeight(window.top) * 0.8);=0A=
  }=0A=
  if (!opt_width) {=0A=
    opt_width =3D Math.min(GetAvailScreenWidth(window), opt_height);=0A=
  }=0A=
=0A=
  var features =3D "resizable=3D" + (opt_noresize ? "no" : "yes") + "," +=0A=
                 "scrollbars=3D" + (opt_hide_scrollbars ? "no" : "yes") =
+ "," +=0A=
                 "width=3D" + opt_width + ",height=3D" + opt_height;=0A=
  if (opt_center) {=0A=
    features +=3D ",left=3D" + GetCenteringLeft(window, opt_width) + "," =
+=0A=
                "top=3D" + GetCenteringTop(window, opt_height);=0A=
  }=0A=
  return OpenWindow(window, url, opt_name, features, opt_blocked_msg);=0A=
}=0A=
=0A=
/*=0A=
 * Opens a new window. Returns the new window handle. Tries to open the =
new=0A=
 * window using top.open() first. If that doesn't work, then tries =
win.open().=0A=
 * If that still doesn't work, prints an alert.=0A=
 * (Copied from caribou's common.js library with small modifications.)=0A=
 *=0A=
 * @param win the parent window from which to open the new child window=0A=
 * @param url the URL for the new window (Note: this will be =
unique-ified)=0A=
 * @param opt_name the name of the new window=0A=
 * @param opt_features the properties of the new window=0A=
 * @param opt_blocked_msg message warning that the popup has been blocked=0A=
 * @return a reference to the new child window=0A=
 */=0A=
function OpenWindow(win, url, opt_name, opt_features, opt_blocked_msg) {=0A=
  var newwin =3D OpenWindowHelper(top, url, opt_name, opt_features);=0A=
  if (!newwin || newwin.closed || !newwin.focus) {=0A=
    newwin =3D OpenWindowHelper(win, url, opt_name, opt_features);=0A=
  }=0A=
  if (!newwin || newwin.closed || !newwin.focus) {=0A=
    if (opt_blocked_msg) alert(opt_blocked_msg);=0A=
  } else {=0A=
    // Make sure that the window has the focus=0A=
    newwin.focus();=0A=
  }=0A=
  return newwin;=0A=
}=0A=
=0A=
/*=0A=
 * Helper for OpenWindow().=0A=
 * (Copied from caribou's common.js library with small modifications.)=0A=
 */=0A=
function OpenWindowHelper(win, url, name, features) {=0A=
  var newwin;=0A=
  if (features) {=0A=
    newwin =3D win.open(url, name, features);=0A=
  } else if (name) {=0A=
    newwin =3D win.open(url, name);=0A=
  } else {=0A=
    newwin =3D win.open(url);=0A=
  }=0A=
  return newwin;=0A=
}=0A=
=0A=
//-----------------------------------------------------------------------=
-=0A=
// DOM walking utilities=0A=
//-----------------------------------------------------------------------=
-=0A=
=0A=
function MaybeEscape(str, escape) {=0A=
  return escape ? HtmlEscape(str) : str;=0A=
}=0A=
=0A=
=0A=
//-----------------------------------------------------------------------=
-=0A=
// Window data=0A=
//-----------------------------------------------------------------------=
-=0A=
// Gets an array, which can store data for the window. This data=0A=
// is deleted when the window is unloaded.=0A=
var windata =3D [];=0A=
function GetWindowData(win) {=0A=
  var data =3D windata[win.name];=0A=
  if (!data) {=0A=
    windata[win.name] =3D data =3D [];=0A=
  }=0A=
  return data;=0A=
}=0A=
=0A=
// Clear js data for a window.=0A=
function ClearWindowData(win_name) {=0A=
  if (windata[win_name]) {=0A=
    windata[win_name] =3D null;=0A=
  }=0A=
}=0A=
=0A=
//-----------------------------------------------------------------------=
-=0A=
// String utilities=0A=
//-----------------------------------------------------------------------=
-=0A=
// Do html escaping=0A=
var amp_re_ =3D /&/g;=0A=
var lt_re_ =3D /</g;=0A=
var gt_re_ =3D />/g;=0A=
=0A=
// Convert text to HTML format. For efficiency, we just convert '&', =
'<', '>'=0A=
// characters.=0A=
// Note: Javascript >=3D 1.3 supports lambda expression in the =
replacement=0A=
// argument. But it's slower on IE.=0A=
// Note: we can also implement HtmlEscape by setting the value=0A=
// of a textnode and then reading the 'innerHTML' value, but that=0A=
// that turns out to be slower.=0A=
// Params: str: String to be escaped.=0A=
// Returns: The escaped string.=0A=
function HtmlEscape(str) {=0A=
  if (!str) return "";=0A=
  return str.replace(amp_re_, "&amp;").replace(lt_re_, "&lt;").=0A=
    replace(gt_re_, "&gt;").replace(quote_re_, "&quot;");=0A=
}=0A=
=0A=
/** converts html entities to plain text.  It covers the most common =
named=0A=
 * entities and numeric entities.=0A=
 * It does not cover all named entities -- it covers =
&{lt,gt,amp,quot,nbsp}; but=0A=
 * does not handle some of the more obscure ones like &{ndash,eacute};.=0A=
 */=0A=
function HtmlUnescape(str) {=0A=
  if (!str) return "";=0A=
  return str.=0A=
    replace(/&#(\d+);/g,=0A=
      function (_, n) { return String.fromCharCode(parseInt(n, 10)); }).=0A=
    replace(/&#x([a-f0-9]+);/gi,=0A=
      function (_, n) { return String.fromCharCode(parseInt(n, 16)); }).=0A=
    replace(/&(\w+);/g, function (_, entity) {=0A=
      entity =3D entity.toLowerCase();=0A=
      return entity in HtmlUnescape.unesc ? HtmlUnescape.unesc[entity] : =
'?';=0A=
    });=0A=
}=0A=
HtmlUnescape.unesc =3D { lt: '<', gt: '>', quot: '"', nbsp: ' ', amp: =
'&' };=0A=
=0A=
// Replace multiple spaces with &nbsp; to retain whitespace formatting=0A=
// in addition to escaping '&', '<', and '>'.=0A=
var dbsp_re_ =3D /  /g;=0A=
var ret_re_ =3D /\r/g;=0A=
var nl_re_ =3D /\n/g;=0A=
function HtmlWhitespaceEscape(str) {=0A=
  str =3D HtmlEscape(str);=0A=
  str =3D str.replace(dbsp_re_, "&nbsp;&nbsp;");=0A=
  str =3D str.replace(ret_re_, "");=0A=
  str =3D str.replace(nl_re_, "<br>");=0A=
  return str;=0A=
}=0A=
=0A=
// Escape double quote '"' characters in addition to '&', '<', '>' so =
that a=0A=
// string can be included in an HTML tag attribute value within double =
quotes.=0A=
// Params: str: String to be escaped.=0A=
// Returns: The escaped string.=0A=
var quote_re_ =3D /\"/g;=0A=
function QuoteEscape(str) {=0A=
  return HtmlEscape(str).replace(quote_re_, "&quot;");=0A=
}=0A=
=0A=
var JS_SPECIAL_RE_ =3D /[\'\\\r\n\b\"<>&]/g;=0A=
=0A=
function JSEscOne_(s) {=0A=
  if (!JSEscOne_.js_escs_) {=0A=
    var escapes =3D {};=0A=
    escapes['\\'] =3D '\\\\';=0A=
    escapes['\''] =3D '\\047';=0A=
    escapes['\n'] =3D '\\n';=0A=
    escapes['\r'] =3D '\\r';=0A=
    escapes['\b'] =3D '\\b';=0A=
    escapes['\"'] =3D '\\042';=0A=
    escapes['<'] =3D  '\\074';=0A=
    escapes['>'] =3D  '\\076';=0A=
    escapes['&'] =3D  '\\046';=0A=
=0A=
    JSEscOne_.js_escs_ =3D escapes;=0A=
  }=0A=
=0A=
  return JSEscOne_.js_escs_[s];=0A=
}=0A=
=0A=
/** convert a string to a javascript string literal.  This function has =
the=0A=
  * property that the return value is also already html escaped, so the =
output=0A=
  * can be embedded in an html handler attribute.=0A=
  */=0A=
function ToJSString(s) {=0A=
  return "'" + s.toString().replace(JS_SPECIAL_RE_, JSEscOne_) + "'";=0A=
}=0A=
=0A=
// converts multiple ws chars to a single space, and strips=0A=
// leading and trailing ws=0A=
var spc_re_ =3D /\s+/g;=0A=
var beg_spc_re_ =3D /^ /;=0A=
var end_spc_re_ =3D / $/;=0A=
function CollapseWhitespace(str) {=0A=
  if (!str) return "";=0A=
  return str.replace(spc_re_, " ").replace(beg_spc_re_, "").=0A=
    replace(end_spc_re_, "");=0A=
}=0A=
=0A=
var newline_re_ =3D /\r?\n/g;=0A=
var spctab_re_ =3D /[ \t]+/g;=0A=
var nbsp_re_ =3D /\xa0/g;=0A=
function StripNewlines(str) {=0A=
  if (!str) return "";=0A=
  return str.replace(newline_re_, " ");=0A=
}=0A=
=0A=
function CanonicalizeNewlines(str) {=0A=
  if (!str) return "";=0A=
  return str.replace(newline_re_, '\n');=0A=
}=0A=
=0A=
function HtmlifyNewlines(str) {=0A=
  if (!str) return "";=0A=
  return str.replace(newline_re_, "<br>");=0A=
}=0A=
=0A=
function NormalizeSpaces(str) {=0A=
  if (!str) return "";=0A=
  return str.replace(spctab_re_, " ").replace(nbsp_re_, " ");=0A=
}=0A=
=0A=
// URL encodes the string.=0A=
function UrlEncode(str) {=0A=
  return encodeURIComponent(str);=0A=
}=0A=
=0A=
function Trim(str) {=0A=
  if (!str) return "";=0A=
  return str.replace(/^\s+/, "").replace(/\s+$/, "");=0A=
}=0A=
=0A=
function EndsWith(str, suffix) {=0A=
  if (!str) return !suffix;=0A=
  return (str.lastIndexOf(suffix) =3D=3D (str.length - suffix.length));=0A=
}=0A=
=0A=
// Check if a string is empty=0A=
function IsEmpty(str) {=0A=
  return CollapseWhitespace(str) =3D=3D "";=0A=
}=0A=
=0A=
// Check if a character is a letter=0A=
function IsLetterOrDigit(ch) {=0A=
  return ((ch >=3D "a" && ch <=3D "z") ||=0A=
          (ch >=3D "A" && ch <=3D "Z") ||=0A=
         (ch >=3D '0' && ch <=3D '9'));=0A=
}=0A=
=0A=
// Check if a character is a space character=0A=
function IsSpace(ch) {=0A=
  return (" \t\r\n".indexOf(ch) >=3D 0);=0A=
}=0A=
=0A=
// Converts any instances of "\r" or "\r\n" style EOLs into "\n" (Line =
Feed),=0A=
// and also trim the extra newlines and whitespaces at the end.=0A=
var eol_re_ =3D /\r\n?/g;=0A=
var trailingspc_re_ =3D /[\n\t ]+$/;=0A=
function NormalizeText(str) {=0A=
  return str.replace(eol_re_, "\n").replace(trailingspc_re_, "");=0A=
}=0A=
=0A=
// Inserts <wbr>s (word break tag) after every n non-space chars and/or=0A=
// after or before certain special chars. The input string should be =
plain=0A=
// text that has not yet been HTML-escaped.=0A=
// Params:=0A=
//   str: The string to insert <wbr>s into.=0A=
//   n: The maximum number of consecutive non-space characters to allow =
before=0A=
//     adding a <wbr>. To turn off this rule (i.e. if you only want to =
add=0A=
//     breaks based on special characters), pass in the value -1.=0A=
//   chars_to_break_after: The list of special characters (concatenated =
into a=0A=
//     string) after which a <wbr> should be added, if there is no =
natural=0A=
//     break at that point. To turn off this rule, pass in the empty =
string.=0A=
//   chars_to_break_before: The list of special characters (concatenated =
into a=0A=
//     string) before which a <wbr> should be added, if there is no =
natural=0A=
//     break at that point. To turn off this rule, pass in the empty =
string.=0A=
// Returns: The string str htmlescaped, and with <wbr>s inserted =
according to=0A=
//   the rules specified by the other arguments.=0A=
function HtmlEscapeInsertWbrs(str, n, chars_to_break_after,=0A=
                              chars_to_break_before) {=0A=
  AssertNumArgs(4);=0A=
=0A=
  var out =3D '';=0A=
  var strpos =3D 0;=0A=
  var spc =3D 0;=0A=
=0A=
  for (var i =3D 1; i < str.length; ++i) {=0A=
    var prev_char =3D str.charAt(i - 1);=0A=
    var next_char =3D str.charAt(i);=0A=
    if (IsSpace(next_char)) {=0A=
      spc =3D i;=0A=
    } else if (i - spc =3D=3D n ||=0A=
               chars_to_break_after.indexOf(prev_char) !=3D -1 ||=0A=
               chars_to_break_before.indexOf(next_char) !=3D -1) {=0A=
      out +=3D HtmlEscape(str.substring(strpos, i)) + '<wbr>';=0A=
      strpos =3D i;=0A=
      spc =3D i;=0A=
    }=0A=
  }=0A=
  out +=3D HtmlEscape(str.substr(strpos));=0A=
  return out;=0A=
}=0A=
=0A=
// Converts a string to its canonicalized label form.=0A=
var illegal_chars_re_ =3D /[ \/(){}&|\\\"\000]/g;=0A=
function CanonicalizeLabel(str, lowercase) {=0A=
  var uppercase =3D str.replace(illegal_chars_re_, '-');=0A=
  return lowercase ? uppercase.toLowerCase() : uppercase;=0A=
}=0A=
=0A=
// Case-insensitive string comparator=0A=
function CompareStringsIgnoreCase(s1, s2) {=0A=
  s1 =3D s1.toLowerCase();=0A=
  s2 =3D s2.toLowerCase();=0A=
=0A=
  if (s1 < s2) {=0A=
    return -1;=0A=
  } else if (s1 =3D=3D s2) {=0A=
    return 0;=0A=
  } else {=0A=
    return 1;=0A=
  }=0A=
}=0A=
=0A=
//-----------------------------------------------------------------------=
-=0A=
// TextArea utilities=0A=
//-----------------------------------------------------------------------=
-=0A=
=0A=
// Gets the cursor pos in a text area. Returns -1 if the cursor pos =
cannot=0A=
// be determined or if the cursor out of the textfield.=0A=
function GetCursorPos(win, textfield) {=0A=
  try {=0A=
    if (IsDefined(textfield.selectionEnd)) {=0A=
      // Mozilla directly supports this=0A=
      return textfield.selectionEnd;=0A=
=0A=
    } else if (win.document.selection && =
win.document.selection.createRange) {=0A=
      // IE doesn't export an accessor for the endpoints of a selection.=0A=
      // Instead, it uses the TextRange object, which has an extremely =
obtuse=0A=
      // API. Here's what seems to work:=0A=
=0A=
      // (1) Obtain a textfield from the current selection (cursor)=0A=
      var tr =3D win.document.selection.createRange();=0A=
=0A=
      // Check if the current selection is in the textfield=0A=
      if (tr.parentElement() !=3D textfield) {=0A=
        return -1;=0A=
      }=0A=
=0A=
      // (2) Make a text range encompassing the textfield=0A=
      var tr2 =3D tr.duplicate();=0A=
      tr2.moveToElementText(textfield);=0A=
=0A=
      // (3) Move the end of the copy to the beginning of the selection=0A=
      tr2.setEndPoint("EndToStart", tr);=0A=
=0A=
      // (4) The span of the textrange copy is equivalent to the cursor =
pos=0A=
      var cursor =3D tr2.text.length;=0A=
=0A=
      // Finally, perform a sanity check to make sure the cursor is in =
the=0A=
      // textfield. IE sometimes screws this up when the window is =
activated=0A=
      if (cursor > textfield.value.length) {=0A=
        return -1;=0A=
      }=0A=
      return cursor;=0A=
    } else {=0A=
      Debug("Unable to get cursor position for: " + navigator.userAgent);=0A=
=0A=
      // Just return the size of the textfield=0A=
      // TODO: Investigate how to get cursor pos in Safari!=0A=
      return textfield.value.length;=0A=
    }=0A=
  } catch (e) {=0A=
    DumpException(e, "Cannot get cursor pos");=0A=
  }=0A=
  =0A=
  return -1;=0A=
}=0A=
=0A=
function SetCursorPos(win, textfield, pos) {=0A=
  if (IsDefined(textfield.selectionEnd) &&=0A=
      IsDefined(textfield.selectionStart)) {=0A=
    // Mozilla directly supports this=0A=
    textfield.selectionStart =3D pos;=0A=
    textfield.selectionEnd =3D pos;=0A=
=0A=
  } else if (win.document.selection && textfield.createTextRange) {=0A=
    // IE has textranges. A textfield's textrange encompasses the=0A=
    // entire textfield's text by default=0A=
    var sel =3D textfield.createTextRange();=0A=
=0A=
    sel.collapse(true);=0A=
    sel.move("character", pos);=0A=
    sel.select();=0A=
  }=0A=
}=0A=
=0A=
//-----------------------------------------------------------------------=
-=0A=
// Array utilities=0A=
//-----------------------------------------------------------------------=
-=0A=
// Find an item in an array, returns the key, or -1 if not found=0A=
function FindInArray(array, x) {=0A=
  for (var i =3D 0; i < array.length; i++) {=0A=
    if (array[i] =3D=3D x) {=0A=
      return i;=0A=
    }=0A=
  }=0A=
  return -1;=0A=
}=0A=
=0A=
// Inserts an item into an array, if it's not already in the array=0A=
function InsertArray(array, x) {=0A=
  if (FindInArray(array, x) =3D=3D -1) {=0A=
    array[array.length] =3D x;=0A=
  }=0A=
}=0A=
=0A=
// Delete an element from an array=0A=
function DeleteArrayElement(array, x) {=0A=
  var i =3D 0;=0A=
  while (i < array.length && array[i] !=3D x)=0A=
    i++;=0A=
  array.splice(i, 1);=0A=
}=0A=
=0A=
// Copies a flat array=0A=
function CopyArray(array) {=0A=
  var copy =3D [];=0A=
  for (var i =3D 0; i < array.length; i++) {=0A=
    copy[i] =3D array[i];=0A=
  }=0A=
  return copy;=0A=
}=0A=
=0A=
// Clone an object (recursively)=0A=
function CloneObject(x) {=0A=
  if ((typeof x) =3D=3D "object") {=0A=
    var y =3D [];=0A=
    for (var i in x) {=0A=
      y[i] =3D CloneObject(x[i]);=0A=
    }=0A=
    return y;=0A=
  }=0A=
  return x;=0A=
}=0A=
=0A=
/**=0A=
 * Clone an event; cannot use CloneObject(event)=0A=
 * because it suffers from infinite recursion.=0A=
 * Thus, only a subset of the event properties are=0A=
 * cloned -- if you need others, just add them=0A=
 * to this function (just don't remove any!)=0A=
 */=0A=
function CloneEvent(ev) {=0A=
  var clone =3D {};=0A=
  clone.clientX =3D ev.clientX;=0A=
  clone.clientY =3D ev.clientY;=0A=
  clone.pageX =3D ev.pageX;=0A=
  clone.pageY =3D ev.pageY;=0A=
  clone.type =3D ev.type;=0A=
  clone.srcElement =3D ev.srcElement;=0A=
  clone.target =3D ev.target;=0A=
  clone.cancelBubble =3D ev.cancelBubble;=0A=
  clone.explicitOriginalTarget =3D ev.explicitOriginalTarget;=0A=
  // add more properties here=0A=
=0A=
  return clone;=0A=
}=0A=
=0A=
function GetEventTarget(/*Event*/ ev) {=0A=
// Event is not a type in IE; IE uses Object for events=0A=
//  AssertType(ev, Event, 'arg passed to GetEventTarget not an Event');=0A=
  return ev.srcElement || ev.target;=0A=
}=0A=
=0A=
/** cancels the event */=0A=
// from http://www.quirksmode.org/js/events_order.html=0A=
function CancelEvent(/*Event*/ ev) {=0A=
  if (is_ie) {=0A=
    ev.cancelBubble =3D true;=0A=
  } else if (ev.stopPropagation) {=0A=
    ev.stopPropagation();=0A=
  }=0A=
}=0A=
=0A=
//-----------------------------------------------------------------------=
-=0A=
// Formatting utilities=0A=
//-----------------------------------------------------------------------=
-=0A=
// A simple printf type function that takes in a template array, and a =
data=0A=
// array. e.g. PrintArray(["a",,"b",,"c"], ["x", "y"]) =3D> axbyc=0A=
function PrintArray(array, data) {=0A=
  // Check that the argument count is correct.=0A=
  AssertEquals(array.length, data.length * 2 + 1);=0A=
=0A=
  for (var i =3D 0, idx =3D 1; i < data.length; i++, idx +=3D 2) {=0A=
    array[idx] =3D data[i];=0A=
  }=0A=
  return array.join("");=0A=
}=0A=
=0A=
function ImageHtml(url, attributes) {=0A=
  return "<img " + attributes + " src=3D" + url + ">";=0A=
}=0A=
=0A=
// Formats an object id that has two id numbers, eg, foo_3_7=0A=
function MakeId3(idprefix, m, n) {=0A=
  return idprefix + m + "_" + n;=0A=
}=0A=
=0A=
//-----------------------------------------------------------------------=
-=0A=
// Email address parsing=0A=
//-----------------------------------------------------------------------=
-=0A=
// Parse an email address of the form "name" <address> into [name, =
address]=0A=
function ParseAddress(addr) {=0A=
  var name =3D "";=0A=
  var address =3D "";=0A=
  for (var i =3D 0; i < addr.length;) {=0A=
    var token =3D GetEmailToken(addr, i);=0A=
    if (token.charAt(0) =3D=3D '<') {=0A=
      var end =3D token.indexOf(">");=0A=
      address =3D token.substring(1, (end !=3D -1) ? end : token.length);=0A=
    } else if (address =3D=3D "") {=0A=
      name +=3D token;=0A=
    }=0A=
    i +=3D token.length;=0A=
  }=0A=
=0A=
  // Check if it's a simple email address of the form "jlim@google.com"=0A=
  if (address =3D=3D "" && name.indexOf("@") !=3D -1) {=0A=
    address =3D name;=0A=
    name =3D "";=0A=
  }=0A=
=0A=
  name =3D CollapseWhitespace(name);=0A=
  name =3D StripQuotes(name, "'");=0A=
  name =3D StripQuotes(name, "\"");=0A=
  address =3D CollapseWhitespace(address);=0A=
  return [name, address];=0A=
}=0A=
=0A=
// Given an email address, get the address part=0A=
function GetAddress(address) {=0A=
  return ParseAddress(address)[1];=0A=
}=0A=
=0A=
// Get the username part of an email address=0A=
function GetAddressUsername(address) {=0A=
  address =3D GetAddress(address);=0A=
  var at =3D address.indexOf("@");=0A=
  return (at =3D=3D -1) ? address : address.substr(0, at);=0A=
}=0A=
=0A=
// Given an email address, get the personal part=0A=
function GetPersonal(address) {=0A=
  return ParseAddress(address)[0];=0A=
}=0A=
=0A=
// Given an address, get a short name=0A=
function GetPersonalElseUsername(address) {=0A=
  var personal =3D GetPersonal(address);=0A=
  if (personal !=3D "") {=0A=
    return personal;=0A=
  } else {=0A=
    return GetAddressUsername(address);=0A=
  }=0A=
}=0A=
=0A=
// Strip ' or " chars around a string=0A=
function StripQuotes(str, quotechar) {=0A=
  var len =3D str.length;=0A=
  if (str.charAt(0) =3D=3D quotechar &&=0A=
      str.charAt(len - 1) =3D=3D quotechar) {=0A=
    return str.substring(1, len - 1);=0A=
  }=0A=
  return str;=0A=
}=0A=
=0A=
// Convert a string containing list of email addresses into an array=0A=
// of strings=0A=
function EmailsToArray(str) {=0A=
  var result =3D [];=0A=
  var email =3D "";=0A=
  var token;=0A=
=0A=
  for (var i =3D 0; i < str.length; ) {=0A=
    token =3D GetEmailToken(str, i);=0A=
    if (token =3D=3D ",") {=0A=
      AddEmailAddress(result, email);=0A=
      email =3D "";=0A=
      i++;=0A=
      continue;=0A=
    }=0A=
    email +=3D token;=0A=
    i +=3D token.length;=0A=
  }=0A=
=0A=
  // Add last=0A=
  if (email !=3D"" || token =3D=3D ",") {=0A=
    AddEmailAddress(result, email);=0A=
  }=0A=
  return result;=0A=
}=0A=
=0A=
// Get the next token from a position in an address string=0A=
var openers_ =3D "\"<([";=0A=
var closers_ =3D "\">)]";=0A=
function GetEmailToken(str, pos) {=0A=
  var ch =3D str.charAt(pos);=0A=
  var p =3D openers_.indexOf(ch);=0A=
  if (p =3D=3D -1)=0A=
    return ch;=0A=
  var end_pos =3D str.indexOf(closers_.charAt(p), pos + 1);=0A=
  var token =3D (end_pos >=3D 0) ? str.substring(pos, end_pos + 1) :=0A=
              str.substr(pos);=0A=
  return token;=0A=
}=0A=
=0A=
// Add an email address to the result array.=0A=
function AddEmailAddress(result, email) {=0A=
  email =3D CleanEmailAddress(email);=0A=
  result[result.length] =3D email;=0A=
}=0A=
=0A=
// Clean up email address:=0A=
// - remove extra spaces=0A=
// - Surround name with quotes if it contains special characters=0A=
// to check if we need " quotes=0A=
// Note: do not use /g in the regular expression, otherwise the=0A=
// regular expression cannot be reusable.=0A=
var specialchars_re_ =3D /[()<>@,;:\\\".\[\]]/;=0A=
=0A=
function CleanEmailAddress(str) {=0A=
  var name_address =3D ParseAddress(str);=0A=
  var name =3D name_address[0];=0A=
  var address =3D name_address[1];=0A=
=0A=
  if (name.indexOf("\"") =3D=3D -1) {  // If there's no "=0A=
    var quote_needed =3D specialchars_re_.test(name);=0A=
    if (quote_needed) {=0A=
      name =3D "\"" + name + "\"";=0A=
    }=0A=
  }=0A=
=0A=
  if (name =3D=3D "")=0A=
    return address;=0A=
  else if (address =3D=3D "")=0A=
    return name;=0A=
  else=0A=
    return name + " <" + address + ">";=0A=
}=0A=
=0A=
//-----------------------------------------------------------------------=
-=0A=
// Misc=0A=
//-----------------------------------------------------------------------=
-=0A=
// Compare long hex strings=0A=
function CompareID(a, b) {=0A=
  if (a.length !=3D b.length) {=0A=
    return (a.length - b.length);=0A=
  } else {=0A=
    return (a < b) ? -1 : (a > b) ? 1 : 0;=0A=
  }=0A=
}=0A=
=0A=
// Check if a value is defined=0A=
function IsDefined(value) {=0A=
  return (typeof value) !=3D 'undefined';=0A=
}=0A=
=0A=
function GetKeyCode(event) {=0A=
  var code;=0A=
  if (event.keyCode) {=0A=
    code =3D event.keyCode;=0A=
  } else if (event.which) {=0A=
    code =3D event.which;=0A=
  }=0A=
  return code;=0A=
}=0A=
=0A=
// define a forid function to fetch a DOM node by id.=0A=
function forid_1(id) {=0A=
  return document.getElementById(id);=0A=
}=0A=
function forid_2(id) {=0A=
  return document.all[id];=0A=
}=0A=
=0A=
/**=0A=
 * Fetch an HtmlElement by id.=0A=
 * DEPRECATED: use $ in dom.js=0A=
 */=0A=
var forid =3D document.getElementById ? forid_1 : forid_2;=0A=
=0A=
=0A=
=0A=
function log(msg) {=0A=
  /* a top level window is its own parent.  Use !=3D or else fails on IE =
with=0A=
   * infinite loop.=0A=
   */=0A=
  try {=0A=
    if (window.parent !=3D window && window.parent.log) {=0A=
      window.parent.log(window.name + '::' + msg);=0A=
      return;=0A=
    }=0A=
  } catch (e) {=0A=
    // Error: uncaught exception: Permission denied to get property =
Window.log=0A=
  }=0A=
  var logPane =3D forid('log');=0A=
  if (logPane) {=0A=
    var logText =3D '<p class=3Dlogentry><span class=3Dlogdate>' + new =
Date() +=0A=
                  '</span><span class=3Dlogmsg>' + msg + '</span></p>';=0A=
    logPane.innerHTML =3D logText + logPane.innerHTML;=0A=
  } else {=0A=
    window.status =3D msg;=0A=
  }=0A=
}=0A=

------=_NextPart_000_0000_01C76C7E.1EED5D60
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www2.blogger.com/app/scripts/dom.common.js

=0A=
// Commonly-used functions, reduced.=0A=
=0A=
function d(s) {return document.getElementById(s);}=0A=
function dE(o,s) {return o.getElementsByTagName(s);}=0A=
=0A=
/**=0A=
 * toggleDisplay()=0A=
 *=0A=
 * Will toggle the display property of the style object for any=0A=
 * DOM element or object that supports style as a property.=0A=
 *=0A=
 * Warning: This'll wreak havoc if applied to <TR> elements. Those=0A=
 * babies got different types "table-row" | "block" dependant on =0A=
 * what browser's being used.=0A=
 *=0A=
 * Warning: Written in Texas.  Yeehaw.=0A=
 *=0A=
 * Typical usage:=0A=
 * toggleDisplay(document.getElementById("foo"));=0A=
 */=0A=
function toggleDisplay(o)=0A=
{  =0A=
  var display =3D getStyle(o, "display"); =0A=
  =0A=
  if (o.style)=0A=
    o.style.display =3D=0A=
      (display !=3D "none") ? "none" : getDisplayStyleByTagName(o);=0A=
}=0A=
=0A=
=0A=
function getDisplayStyleByTagName(o)=0A=
{=0A=
  n =3D o.nodeName.toLowerCase(); =0A=
  return (=0A=
          n =3D=3D "span"=0A=
          || n =3D=3D "img"=0A=
          || n =3D=3D "a"=0A=
          ) ? "inline" : "block";=0A=
}=0A=
=0A=
=0A=
/**=0A=
 * hideElement()=0A=
 *=0A=
 * Hides an element from view.=0A=
 *=0A=
 * Typical usage:=0A=
 * hideElement(getElement("the-id-of-the-element"));=0A=
 */=0A=
function hideElement(o)=0A=
{=0A=
  if (o && o.style) o.style.display =3D "none";=0A=
}=0A=
=0A=
=0A=
=0A=
/**=0A=
 * showElement()=0A=
 *=0A=
 * Shows an element that was hidden from view.=0A=
 *=0A=
 * Typical usage:=0A=
 * showElement(getElement("the-id-of-the-element"));=0A=
 */=0A=
function showElement(o)=0A=
{=0A=
  =0A=
  if (o && o.style) o.style.display =3D getDisplayStyleByTagName(o);=0A=
}=0A=
=0A=
=0A=
/**=0A=
 * getElement()=0A=
 *=0A=
 * Returns an element by its ID or shows an alert if it can't be found.=0A=
 *=0A=
 * Typical usage:=0A=
 * getElement("the-id-of-the-element");=0A=
 */=0A=
function getElement(id) {=0A=
  var e =3D d(id);=0A=
  if (!e) {=0A=
    alert("Cannot get element: " + id);=0A=
  }=0A=
  return e;=0A=
}=0A=
=0A=
/**=0A=
 * setInnerHTML()=0A=
 *=0A=
 * Sets the innerHTML of an element or shows an alert if can't be set.=0A=
 *=0A=
 * Typical usage:=0A=
 * setInnerHTML("the-id-of-the-element");=0A=
 */=0A=
function setInnerHTML(id, html) {=0A=
  try {=0A=
    getElement(id).innerHTML =3D html;=0A=
  } catch (ex) {=0A=
    alert("Cannot set inner HTML: " + id);=0A=
  }=0A=
}=0A=
=0A=
=0A=
/**=0A=
 * setCssStyle()=0A=
 *=0A=
 * Sets the style of an element by its id or shows an alert if can't be =
set.=0A=
 *=0A=
 * Typical usage:=0A=
 * setCssStyle("the-id-of-the-element", "display", "block");=0A=
 */=0A=
function setCssStyle(id, name, value) {=0A=
  try {=0A=
    getElement(id).style[name] =3D value;=0A=
  } catch (ex) {=0A=
    alert("Cannot set style: " + id);=0A=
  }=0A=
}=0A=
=0A=
=0A=
/**=0A=
 * getStyle()=0A=
 *=0A=
 * Gets the computed style of any object.=0A=
 *=0A=
 * WARNING: Produces unexpected results in Safari.  To achieve best =0A=
 * results, explicitly set the style property for that browser when the =0A=
 * element is rendered.=0A=
 *=0A=
 * Typical usage:=0A=
 * getStyle(object, "display");=0A=
 */=0A=
function getStyle(el, style) {=0A=
  if (!document.getElementById || !el) return;=0A=
  =0A=
  if (document.defaultView=0A=
      && document.defaultView.getComputedStyle) {=0A=
      return document.defaultView.=0A=
        getComputedStyle(el, "").getPropertyValue(style);=0A=
  }  =0A=
  else if (el.currentStyle) {=0A=
    return el.currentStyle[style];=0A=
  }  =0A=
  else { =0A=
    return el.style.display;=0A=
  }=0A=
}=0A=
=0A=
/**=0A=
 * getStyleAttribute()=0A=
 *=0A=
 * Returns the style attribute of the specified node.=0A=
 */=0A=
function getStyleAttribute(node) {=0A=
  if (Detect.IE()) {=0A=
    return node.getAttribute('style').value;=0A=
  }else {=0A=
    return node.getAttribute('style');=0A=
  }=0A=
}=0A=
=0A=
=0A=
/*=0A=
 * showProps()=0A=
 *=0A=
 * Displays all the properties for a given element=0A=
 */=0A=
function showProps(o) {=0A=
	s=3D""; for (p in o) {=0A=
		s+=3Dp+": "+o[p]+"\n<br />";=0A=
	}=0A=
	document.write(s);=0A=
}=0A=
=0A=
=0A=
=0A=
function setIFrameEvent(iframe, eventName, func)=0A=
{=0A=
  if (document.all) {=0A=
    eval('getIFrameDocument(iframe).on' + eventName + ' =3D func;');=0A=
  } else {=0A=
    iframe.contentWindow.addEventListener(eventName, func, true);=0A=
  }=0A=
}=0A=
=0A=
function setIFrameBody(iframe, strStyle, innerHtml) =0A=
{=0A=
  if (!innerHtml) innerHtml =3D '';=0A=
  if (innerHtml =3D=3D '' && Detect.IE()) {=0A=
    innerHtml =3D '<div></div>';=0A=
  }=0A=
  var doc =3D getIFrameDocument(iframe);=0A=
  doc.open();=0A=
  doc.write('<body style=3D"' + strStyle + '">' =0A=
    + innerHtml + '</body>');=0A=
  doc.close();=0A=
}=0A=
=0A=
=0A=
function getIFrameDocument(iframe)=0A=
{=0A=
  if (Detect.IE()) {=0A=
    return iframe.document;=0A=
  } else {=0A=
    return iframe.contentDocument;=0A=
  }=0A=
}=0A=
=0A=
function getIFrame(strId)=0A=
{=0A=
  if (Detect.IE()) {=0A=
    return document.frames[strId];=0A=
  } else {=0A=
    return document.getElementById(strId);=0A=
  }=0A=
}=0A=
=0A=
=0A=
function createElementandAppend(nodeName, strId, appendTo) {=0A=
  var el =3D document.createElement(nodeName);=0A=
  el.setAttribute("id", strId);=0A=
  if (appendTo) {=0A=
    appendTo.appendChild(el); =0A=
  } else {=0A=
    document.body.appendChild(el); =0A=
  }=0A=
  return el; =0A=
}=0A=
=0A=
function createElementandInsertBefore(nodeName, strId, appendTo, =
sibling) {=0A=
  var el =3D document.createElement(nodeName);=0A=
  el.setAttribute("id", strId);=0A=
  if (appendTo) {=0A=
    appendTo.insertBefore(el, sibling); =0A=
  } else {=0A=
    document.body.insertBefore(el, sibling); =0A=
  }=0A=
  return el; =0A=
}=0A=
=0A=
=0A=
/**=0A=
* getXY()=0A=
 *=0A=
 * Returns the position of any element as an object.=0A=
 *=0A=
 * Typical usage:=0A=
 * var pos =3D getXY(object);=0A=
 * alert(pos.x + " " +pos.y);=0A=
 */=0A=
function getXY(el) {=0A=
  var x =3D el.offsetLeft;=0A=
  var y =3D el.offsetTop;=0A=
  if (el.offsetParent !=3D null) {=0A=
    var pos =3D getXY(el.offsetParent);=0A=
    x +=3D pos.x;=0A=
    y +=3D pos.y;=0A=
  }=0A=
  return {x: x, y: y}=0A=
}=0A=
=0A=
// The following 3 functions are taken from common.js=0A=
function hasClass(el, cl) {=0A=
  if (el =3D=3D null || el.className =3D=3D null) return false;=0A=
  var classes =3D el.className.split(" ");=0A=
  for (var i =3D 0; i < classes.length; i++) {=0A=
    if (classes[i] =3D=3D cl) {=0A=
      return true;=0A=
    }=0A=
  }=0A=
  return false;=0A=
}=0A=
=0A=
// Add a class to element=0A=
function addClass(el, cl) {=0A=
  if (hasClass(el, cl)) return;=0A=
  el.className +=3D " " + cl;=0A=
} =0A=
=0A=
// Remove a class from an element=0A=
function removeClass(el, cl) {=0A=
  if (el.className =3D=3D null) return;=0A=
  var classes =3D el.className.split(" ");=0A=
  var result =3D [];=0A=
  var changed =3D false;=0A=
  for (var i =3D 0; i < classes.length; i++) {=0A=
    if (classes[i] !=3D cl) {=0A=
      if (classes[i]) { result.push(classes[i]); }=0A=
    } else {=0A=
      changed =3D true;=0A=
    } =0A=
  } =0A=
  if (changed) { el.className =3D result.join(" "); }=0A=
} =0A=
=0A=
function toggleClass(el, cl) {=0A=
  if (hasClass(el, cl)) {=0A=
    removeClass(el, cl);=0A=
  } else {=0A=
    addClass(el, cl);=0A=
  }=0A=
}=0A=
=0A=
=0A=
/* Constants for node types, since IE doesn't support Node.TEXT_NODE */=0A=
var TEXT_NODE =3D 3;=0A=
var ELEMENT_NODE =3D 1;=0A=
=0A=
=0A=

------=_NextPart_000_0000_01C76C7E.1EED5D60
Content-Type: multipart/alternative;
	boundary="----=_NextPart_001_0015_01C76C7E.1EF21850"


------=_NextPart_001_0015_01C76C7E.1EF21850
Content-Type: text/html;
	charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://illinoisissuesblog.blogspot.com/2007/03/education-and-electricity.html

=EF=BB=BF<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" =
"http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML><HEAD><TITLE>Illinois Issues blog: Education and =
electricity</TITLE>
<META http-equiv=3DContent-Type content=3D"text/html; charset=3DUTF-8">
<META content=3Dtrue name=3DMSSmartTagsPreventParsing>
<META content=3D"MSHTML 6.00.2900.3059" name=3DGENERATOR><LINK=20
title=3D"Illinois Issues blog - Atom"=20
href=3D"http://illinoisissuesblog.blogspot.com/feeds/posts/default"=20
type=3Dapplication/atom+xml rel=3Dalternate><LINK title=3D"Illinois =
Issues blog - RSS"=20
href=3D"http://illinoisissuesblog.blogspot.com/feeds/posts/default?alt=3D=
rss"=20
type=3Dapplication/rss+xml rel=3Dalternate><LINK title=3D"Illinois =
Issues blog - Atom"=20
href=3D"http://www.blogger.com/feeds/23816706/posts/default"=20
type=3Dapplication/atom+xml rel=3Dservice.post><LINK title=3DRSD=20
href=3D"http://www2.blogger.com/rsd.g?blogID=3D23816706" =
type=3Dapplication/rsd+xml=20
rel=3DEditURI><LINK title=3D"Illinois Issues blog - Atom"=20
href=3D"http://illinoisissuesblog.blogspot.com/feeds/8652723838241301555/=
comments/default"=20
type=3Dapplication/atom+xml rel=3Dalternate>
<STYLE id=3Dpage-skin-1 type=3Dtext/css>BODY {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: small; BACKGROUND: =
#ffffff; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: #000000; PADDING-TOP: =
0px
}
#outer-wrapper {
	FONT: 131% Trebuchet, Trebuchet MS, Arial, sans-serif
}
A {
	COLOR: #de7008
}
A:hover {
	COLOR: #9e5205
}
A IMG {
	BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: =
0px; BORDER-RIGHT-WIDTH: 0px
}
#content-wrapper {
	PADDING-RIGHT: 1em; PADDING-LEFT: 1em; PADDING-BOTTOM: 0px; =
PADDING-TOP: 0px
}

@media All   =20
{
DIV#main {
	PADDING-RIGHT: 0px; PADDING-LEFT: 1em; FLOAT: right; PADDING-BOTTOM: =
10px; OVERFLOW: hidden; BORDER-LEFT: #e0ad12 1px dotted; WIDTH: 66%; =
PADDING-TOP: 30px; WORD-WRAP: break-word
}
DIV#sidebar {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: =
0px; MARGIN: 20px 0px 0px; OVERFLOW: hidden; WIDTH: 31%; PADDING-TOP: =
0px; TEXT-ALIGN: left; WORD-WRAP: break-word
}

}

@media Handheld   =20
{
DIV#main {
	FLOAT: none; WIDTH: 90%
}
DIV#sidebar {
	PADDING-RIGHT: 7%; PADDING-LEFT: 3%; PADDING-BOTTOM: 10px; PADDING-TOP: =
30px
}
    }
#header {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #f5e39e; =
PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: =
#e0ad12 1px dotted
}
H1 A:link {
	COLOR: #f5deb3; TEXT-DECORATION: none
}
H1 A:visited {
	COLOR: #f5deb3; TEXT-DECORATION: none
}
H1 {
	MARGIN: 0px
}
H2 {
	MARGIN: 0px
}
H3 {
	MARGIN: 0px
}
H1 {
	PADDING-RIGHT: 0px; PADDING-LEFT: 5%; BACKGROUND: #de7008; =
PADDING-BOTTOM: 10px; FONT: bold 300% Verdana,Sans-Serif; COLOR: =
#f5deb3; PADDING-TOP: 25px; LETTER-SPACING: -2px
}
H3.post-title {
	FONT: bold 160% Verdana,Sans-Serif; COLOR: #9e5205; LETTER-SPACING: =
-1px
}
H3.post-title A {
	COLOR: #9e5205
}
H3.post-title A:visited {
	COLOR: #9e5205
}
H2.date-header {
	MARGIN: 10px 0px 0px; FONT: bold 105% 'Trebuchet =
MS',Trebuchet,Verdana,Sans-serif; COLOR: #777777
}
H4 {
	COLOR: #aa0033
}
#sidebar H2 {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; FONT: bold 150% Verdana,Sans-serif; COLOR: #b8a80d; PADDING-TOP: =
0px
}
#sidebar .widget {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: =
0px; MARGIN: 0px 0px 33px; PADDING-TOP: 0px
}
#sidebar UL {
	MARGIN-TOP: 0px; PADDING-LEFT: 0px; LIST-STYLE-TYPE: none
}
#sidebar LI {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 95%; PADDING-BOTTOM: =
0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none
}
.description {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: none transparent =
scroll repeat 0% 0%; PADDING-BOTTOM: 0px; MARGIN: 7px 12% 7px 5%; FONT: =
bold 100% Verdana,Sans-Serif; COLOR: #9e5205; PADDING-TOP: 0px
}
.post {
	MARGIN: 0px 0px 30px
}
.post STRONG {
	FONT-WEIGHT: bold; COLOR: #000000
}
PRE {
	COLOR: #b47b10
}
CODE {
	COLOR: #b47b10
}
STRIKE {
	COLOR: #b47b10
}
.post-footer {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 80%; PADDING-BOTTOM: =
0px; MARGIN: 0px; COLOR: #444444; PADDING-TOP: 0px
}
.post-footer A {
	COLOR: #968a0a; BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; =
BORDER-LEFT-STYLE: none; TEXT-DECORATION: none; BORDER-BOTTOM-STYLE: =
none
}
.post-footer A:hover {
	TEXT-DECORATION: underline
}
#comments {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: =
110%; PADDING-BOTTOM: 0px; PADDING-TOP: 0px
}
.comment-author {
	MARGIN-TOP: 10px
}
.comment-body {
	FONT-WEIGHT: normal; FONT-SIZE: 100%; COLOR: black
}
.comment-footer {
	DISPLAY: inline; FONT-WEIGHT: normal; FONT-SIZE: 80%; PADDING-BOTTOM: =
20px; COLOR: #444444; MARGIN-RIGHT: 10px
}
.deleted-comment {
	COLOR: gray; FONT-STYLE: italic
}
.comment-link {
	MARGIN-LEFT: 0.6em
}
.profile-textblock {
	CLEAR: both; MARGIN-LEFT: 0px
}
.profile-img {
	BORDER-RIGHT: #de7008 2px solid; BORDER-TOP: #de7008 2px solid; FLOAT: =
left; MARGIN: 0px 5px 5px 0px; BORDER-LEFT: #de7008 2px solid; =
BORDER-BOTTOM: #de7008 2px solid
}
#sidebar A:link {
	COLOR: #b47b10; TEXT-DECORATION: none
}
#sidebar A:active {
	COLOR: #ff0000; TEXT-DECORATION: none
}
#sidebar A:visited {
	TEXT-DECORATION: none
}
#sidebar A:hover {
	COLOR: #b8a80d; TEXT-DECORATION: none
}
.feed-links {
	CLEAR: both; LINE-HEIGHT: 2.5em
}
#blog-pager-newer-link {
	FLOAT: left
}
#blog-pager-older-link {
	FLOAT: right
}
#blog-pager {
	TEXT-ALIGN: center
}
.clear {
	CLEAR: both
}
.widget-content {
	MARGIN-TOP: 0.5em
}
BODY#layout #outer-wrapper {
	MARGIN-TOP: 0px
}
BODY#layout #main {
	MARGIN-TOP: 10px; PADDING-TOP: 0px
}
BODY#layout #sidebar {
	MARGIN-TOP: 10px; PADDING-TOP: 0px
}
</STYLE>
<LINK =
href=3D"http://www2.blogger.com/widgets/3319451950-blogarchive.css"=20
type=3Dtext/css rel=3Dstylesheet><LINK=20
href=3D"http://www2.blogger.com/widgets/2791266615-blog.css" =
type=3Dtext/css=20
rel=3Dstylesheet><!-- -->
<STYLE type=3Dtext/css>@import url( =
http://www2.blogger.com/css/blog_controls.css );
@import url( =
http://www2.blogger.com/dyn-css/authorization.css?blogID=3D23816706 );
</STYLE>

<SCRIPT src=3D"http://www2.blogger.com/widgets/2097585883-widgets.js"=20
type=3Dtext/javascript></SCRIPT>
</HEAD>
<BODY>
<DIV class=3D"navbar section" id=3Dnavbar>
<DIV class=3D"widget Navbar" id=3DNavbar1><IFRAME id=3Dnavbar-iframe =
marginWidth=3D0=20
marginHeight=3D0=20
src=3D"http://www2.blogger.com/navbar.g?targetBlogID=3D23816706&amp;blogN=
ame=3DIllinois+Issues+blog&amp;publishMode=3DPUBLISH_MODE_BLOGSPOT&amp;na=
vbarType=3DBLUE&amp;layoutType=3DLAYOUTS&amp;homepageUrl=3Dhttp%3A%2F%2Fi=
llinoisissuesblog.blogspot.com%2Findex.html&amp;searchRoot=3Dhttp%3A%2F%2=
Fillinoisissuesblog.blogspot.com%2Fsearch"=20
frameBorder=3D0 width=3D"100%" scrolling=3Dno height=3D30></IFRAME>
<DIV id=3Dspace-for-ie></DIV></DIV></DIV>
<DIV id=3Douter-wrapper>
<DIV id=3Dwrap2><SPAN id=3Dskiplinks style=3D"DISPLAY: none"><A=20
href=3D"http://illinoisissuesblog.blogspot.com/2007/03/education-and-elec=
tricity.html#main">skip=20
to main </A>| <A=20
href=3D"http://illinoisissuesblog.blogspot.com/2007/03/education-and-elec=
tricity.html#sidebar">skip=20
to sidebar</A> </SPAN>
<DIV id=3Dheader-wrapper>
<DIV class=3D"header section" id=3Dheader>
<DIV class=3D"widget Header" id=3DHeader1>
<DIV class=3Dtitlewrapper>
<H1 class=3Dtitle><A=20
href=3D"http://illinoisissuesblog.blogspot.com/index.html">Illinois =
Issues=20
blog</A> </H1></DIV>
<DIV class=3Ddescriptionwrapper>
<P class=3Ddescription><SPAN>The official blog of Illinois Issues =
magazine,=20
published by the Center for State Policy and Leadership at the =
University of=20
Illinois at Springfield</SPAN></P></DIV></DIV></DIV></DIV>
<DIV id=3Dcontent-wrapper>
<DIV id=3Dmain-wrapper>
<DIV class=3D"main section" id=3Dmain>
<DIV class=3D"widget Blog" id=3DBlog1>
<DIV class=3Dblog-posts>
<H2 class=3Ddate-header>Tuesday, March 20, 2007</H2>
<DIV class=3D"post uncustomized-post-template"><A =
name=3D8652723838241301555></A>
<H3 class=3Dpost-title><A=20
href=3D"http://illinoisissuesblog.blogspot.com/2007/03/education-and-elec=
tricity.html">Education=20
and electricity</A> </H3>
<DIV class=3Dpost-header-line-1></DIV>
<DIV class=3Dpost-body>
<P><STRONG>Two juicy debates</STRONG><BR><BR>In downtown Springfield, =
the=20
Illinois Commerce Commission heard Ameren Illinois president Scott Cisel =
defend=20
his recent decision to end some of the utility=E2=80=99s electricity =
rate relief to=20
downstate customers. In the Capitol, Gov. Rod Blagojevich said =
he=E2=80=99d veto any=20
proposal that would increase income and sales taxes, as stated in a <A=20
href=3D"http://illinoisissues.uis.edu/blog/governor.pdf">press =
release</A> handed=20
out during a House committee. House Speaker Michael Madigan, on the =
other hand,=20
signaled he=E2=80=99s willing to let the so-called tax swap proposal see =
the light of=20
day by sending his general counsel to moderate debate on an education =
funding=20
reform proposal. <BR><BR>That legislation has nine lives, but supporters =
and=20
opponents of the revised version agree on two things: 1) no one at the =
hearing=20
likes the governor=E2=80=99s revenue idea to replace the corporate =
income tax with a new=20
tax on business inputs; and 2) there=E2=80=99s lots of room to tweak the =
legislation.=20
The House committee is expected to vote on the measure when it =
reconvenes, which=20
could be soon.<BR><BR>In general, <A=20
href=3D"http://www.ilga.gov/legislation/billstatus.asp?DocNum=3D750&amp;G=
AID=3D9&amp;GA=3D95&amp;DocTypeID=3DHB&amp;LegID=3D28049&amp;SessionID=3D=
51">HB/SB=20
750</A> would reform the way the state funds education by increasing =
income=20
taxes, expanding sales taxes to apply to services and offering property =
tax=20
relief.<BR><BR>Supporters of the bill include Ralph Martire of the =
Center for=20
Tax and Budget Accountability. In committee, he said no schools would =
lose, and=20
businesses would be =E2=80=9Cnet tax winners=E2=80=9D under the =
legislation.<BR><BR>The=20
opposition includes J. Thomas Johnson of the Taxpayers=E2=80=99 =
Federation of Illinois,=20
who said the legislation puts =E2=80=9Cthe cart before the =
horse=E2=80=9D because it talks about=20
distributing new revenue before it spells out how the money would =
improve=20
education (and stipulates that it wouldn't be diverted to other state or =
local=20
operations). He added that legislators needed to have a clear =
understanding of=20
the actual property tax relief offered by a tax swap. =
=E2=80=9CWe=E2=80=99ll never meet the=20
taxpayers=E2=80=99 expectations,=E2=80=9D he said. =E2=80=9CRhetoric =
will come back to haunt=20
us.=E2=80=9D<BR><BR>Johnson, along with the Civic Committee of the =
Commercial Club of=20
Chicago, said the state should consider at least three ways to save $1 =
billion=20
before asking taxpayers to pay more. He said Illinois could save by =
reforming=20
the state=E2=80=99s public employee retirement benefits, such as the =
retirement age and=20
cost of living adjustments, as well as by using more managed care for =
state=20
employees and Medicaid enrollees.<BR><BR><STRONG>Electricity=20
rates</STRONG><BR>The Illinois Commerce Commission cut off discussion =
that was=20
leading to Ameren Illinois=E2=80=99 recent proposal to return to a =
regulated system,=20
where the state sets electricity rates rather than the utilities buying =
power on=20
the open market. The downstate utility used doom=E2=80=99s day rhetoric =
in Tuesday=E2=80=99s=20
commission hearing to explain its recent decisions.<BR><BR>Ameren also =
recently=20
decided to suspend programs that would provide rate relief to its =
customers.=20
Commissioner Erin O=E2=80=99Connell-Diaz chastised the utility for =
=E2=80=9Cnot keeping=20
customers in the loop.=E2=80=9D Ameren has yet to inform the 7,000 =
customers enrolled in=20
a deferred payment plan that it has stopped the program.<BR><BR>The =
utility=20
blamed its decision to halt these programs on the House, which approved =
a=20
measure that would provide credits to customers and a three-year rate =
freeze.=20
Soon after the House measure won approval, the company=E2=80=99s credit =
rating was=20
downgraded to junk status.<BR><BR>According to the company's president =
and CEO,=20
Scott Cisel, if the Senate approves a separate but similar measure, =
Ameren=20
Illinois may be forced to lay off employees and contractors. =
Furthermore, unless=20
the legislative leaders in both chambers ensured Ameren that the General =

Assembly wouldn=E2=80=99t attempt to refreeze electricity rates, the =
company would go=20
into survival mode.<BR><BR>=E2=80=9CThis is a who-blinks-first =
game,=E2=80=9D says Illinois=20
Commerce Commission chairman Charles Box. =E2=80=9CBoth sides do not =
want to give up=20
leverage, but whose suffering? It's the citizens that are suffering, =
especially=20
the elderly and the people who have gigantic bills.=E2=80=9D</P>
<DIV style=3D"CLEAR: both"></DIV></DIV>
<DIV class=3Dpost-footer>
<P class=3D"post-footer-line post-footer-line-1"><SPAN =
class=3Dpost-author>Posted by=20
<STRONG>Bethany Carson</STRONG> </SPAN><SPAN class=3Dpost-timestamp>at =
<A=20
class=3Dtimestamp-link title=3D"permanent link"=20
href=3D"http://illinoisissuesblog.blogspot.com/2007/03/education-and-elec=
tricity.html">6:17=20
PM</A> </SPAN><SPAN class=3Dpost-comment-link></SPAN><SPAN=20
class=3D"post-backlinks post-comment-link"></SPAN><SPAN =
class=3Dpost-icons><SPAN=20
class=3Ditem-action><A title=3D"Email Post"=20
href=3D"http://www2.blogger.com/email-post.g?blogID=3D23816706&amp;postID=
=3D8652723838241301555"><SPAN=20
class=3Demail-post-icon>&nbsp;</SPAN> </A></SPAN><SPAN=20
class=3D"item-control blog-admin pid-475571815"><A title=3D"Edit Post"=20
href=3D"http://www2.blogger.com/post-edit.g?blogID=3D23816706&amp;postID=3D=
8652723838241301555"><SPAN=20
class=3Dquick-edit-icon>&nbsp;</SPAN> </A></SPAN></SPAN></P>
<P class=3D"post-footer-line post-footer-line-2"><SPAN =
class=3Dpost-labels>Labels:=20
<A =
href=3D"http://illinoisissuesblog.blogspot.com/search/label/Education"=20
rel=3Dtag>Education</A>, <A=20
href=3D"http://illinoisissuesblog.blogspot.com/search/label/Electricity%2=
0rates"=20
rel=3Dtag>Electricity rates</A> </SPAN></P>
<P class=3D"post-footer-line post-footer-line-3"></P></DIV></DIV>
<DIV class=3Dcomments id=3Dcomments><A name=3Dcomments></A>
<DIV id=3Dbacklinks-container>
<DIV id=3DBlog1_backlinks-container><A name=3Dlinks></A>
<H4></H4>
<P class=3Dcomment-footer><A class=3Dcomment-link =
id=3DBlog1_backlinks-create-link=20
href=3D"http://illinoisissuesblog.blogspot.com/2007/03/"=20
target=3D_blank></A></P></DIV></DIV></DIV></DIV>
<DIV class=3Dblog-pager id=3Dblog-pager><SPAN =
id=3Dblog-pager-older-link><A=20
class=3Dblog-pager-older-link id=3DBlog1_blog-pager-older-link =
title=3D"Older Post"=20
href=3D"http://illinoisissuesblog.blogspot.com/2007/03/price-fixing.html"=
>Older=20
Post</A> </SPAN><A class=3Dhome-link=20
href=3D"http://illinoisissuesblog.blogspot.com/index.html">Home</A> =
</DIV>
<DIV class=3Dclear></DIV>
<DIV class=3Dpost-feeds></DIV></DIV></DIV></DIV>
<DIV id=3Dsidebar-wrapper>
<DIV class=3D"sidebar section" id=3Dsidebar>
<DIV class=3D"widget Profile" id=3DProfile1>
<H2>About Me</H2>
<DIV class=3Dwidget-content><A=20
href=3D"http://www.blogger.com/profile/17857188978913308313"><IMG=20
class=3Dprofile-img height=3D80 alt=3D"My Photo"=20
src=3D"http://illinoisissues.uis.edu/images/bethany.jpg" width=3D72></A> =

<DL class=3Dprofile-datablock>
  <DT class=3Dprofile-data><STRONG>Bethany Carson</STRONG>=20
  <DD class=3Dprofile-data>Springfield, Illinois, US=20
  <DD class=3Dprofile-textblock>I follow state government news from the =
Capitol=20
  press room and write articles for <EM>Illinois Issues</EM> magazine, =
published=20
  by the Center for State Policy and Leadership at the University of =
Illinois at=20
  Springfield. E-mail your ideas to me: capitolbureau@aol.com =
</DD></DL><A=20
class=3Dprofile-link=20
href=3D"http://www.blogger.com/profile/17857188978913308313">View my =
complete=20
profile</A>=20
<DIV class=3Dclear></DIV><SPAN class=3Dwidget-item-control><SPAN=20
class=3D"item-control blog-admin"><A class=3Dquickedit title=3DEdit=20
onclick=3D'return =
_WidgetManager._PopupConfig(document.getElementById("Profile1"));'=20
href=3D"http://www2.blogger.com/rearrange?blogID=3D23816706&amp;widgetTyp=
e=3DProfile&amp;widgetId=3DProfile1&amp;action=3DeditWidget"=20
target=3DconfigProfile1><SPAN class=3Dquick-edit-icon>&nbsp;</SPAN>=20
</A></SPAN></SPAN>
<DIV class=3Dclear></DIV></DIV></DIV>
<DIV class=3D"widget Label" id=3DLabel1>
<H2>Labels</H2>
<DIV class=3Dwidget-content>
<UL>
  <LI><A=20
  =
href=3D"http://illinoisissuesblog.blogspot.com/search/label/Audits">Audit=
s</A>=20
  (2)=20
  <LI><A=20
  =
href=3D"http://illinoisissuesblog.blogspot.com/search/label/Blagojevich">=
Blagojevich</A>=20
  (9)=20
  <LI><A=20
  =
href=3D"http://illinoisissuesblog.blogspot.com/search/label/Budget">Budge=
t</A>=20
  (23)=20
  <LI><A=20
  =
href=3D"http://illinoisissuesblog.blogspot.com/search/label/Education">Ed=
ucation</A>=20
  (4)=20
  <LI><A=20
  =
href=3D"http://illinoisissuesblog.blogspot.com/search/label/Elections">El=
ections</A>=20
  (10)=20
  <LI><A=20
  =
href=3D"http://illinoisissuesblog.blogspot.com/search/label/Electricity%2=
0rates">Electricity=20
  rates</A> (10)=20
  <LI><A=20
  =
href=3D"http://illinoisissuesblog.blogspot.com/search/label/Environment">=
Environment</A>=20
  (1)=20
  <LI><A=20
  =
href=3D"http://illinoisissuesblog.blogspot.com/search/label/Health%20care=
">Health=20
  care</A> (1)=20
  <LI><A=20
  =
href=3D"http://illinoisissuesblog.blogspot.com/search/label/Investigation=
s">Investigations</A>=20
  (8)=20
  <LI><A=20
  =
href=3D"http://illinoisissuesblog.blogspot.com/search/label/Minimum%20wag=
e">Minimum=20
  wage</A> (1)=20
  <LI><A=20
  =
href=3D"http://illinoisissuesblog.blogspot.com/search/label/Miscellaneous=
">Miscellaneous</A>=20
  (2)=20
  <LI><A=20
  =
href=3D"http://illinoisissuesblog.blogspot.com/search/label/Obama">Obama<=
/A> (2)=20

  <LI><A=20
  =
href=3D"http://illinoisissuesblog.blogspot.com/search/label/Pensions">Pen=
sions</A>=20
  (1)=20
  <LI><A=20
  =
href=3D"http://illinoisissuesblog.blogspot.com/search/label/Privitization=
">Privitization</A>=20
  (4)=20
  <LI><A=20
  =
href=3D"http://illinoisissuesblog.blogspot.com/search/label/Revenue">Reve=
nue</A>=20
  (1)=20
  <LI><A=20
  =
href=3D"http://illinoisissuesblog.blogspot.com/search/label/State%20emplo=
yees">State=20
  employees</A> (2)=20
  <LI><A=20
  =
href=3D"http://illinoisissuesblog.blogspot.com/search/label/Veterans">Vet=
erans</A>=20
  (1) </LI></UL>
<DIV class=3Dclear></DIV><SPAN class=3Dwidget-item-control><SPAN=20
class=3D"item-control blog-admin"><A class=3Dquickedit title=3DEdit=20
onclick=3D'return =
_WidgetManager._PopupConfig(document.getElementById("Label1"));'=20
href=3D"http://www2.blogger.com/rearrange?blogID=3D23816706&amp;widgetTyp=
e=3DLabel&amp;widgetId=3DLabel1&amp;action=3DeditWidget"=20
target=3DconfigLabel1><SPAN class=3Dquick-edit-icon>&nbsp;</SPAN> =
</A></SPAN></SPAN>
<DIV class=3Dclear></DIV></DIV></DIV>
<DIV class=3D"widget BlogArchive" id=3DBlogArchive1>
<H2>Blog Archive</H2>
<DIV class=3Dwidget-content>
<DIV id=3DArchiveList>
<DIV id=3DBlogArchive1_ArchiveList>
<UL>
  <LI class=3D"archivedate expanded"><A class=3Dtoggle=20
  =
href=3D"http://illinoisissuesblog.blogspot.com/2007/03/education-and-elec=
tricity.html?widgetType=3DBlogArchive&amp;widgetId=3DBlogArchive1&amp;act=
ion=3Dtoggle&amp;dir=3Dclose&amp;toggle=3DYEARLY-1167631200000&amp;toggle=
open=3DMONTHLY-1172728800000"><SPAN=20
  class=3D"zippy toggle-open">=E2=96=BC </SPAN></A><A =
class=3Dpost-count-link=20
  =
href=3D"http://illinoisissuesblog.blogspot.com/search?updated-min=3D2007-=
01-01T00%3A00%3A00-06%3A00&amp;updated-max=3D2008-01-01T00%3A00%3A00-06%3=
A00&amp;max-results=3D17">2007</A>=20
  (<SPAN class=3Dpost-count>17</SPAN>)=20
  <UL>
    <LI class=3D"archivedate expanded"><A class=3Dtoggle=20
    =
href=3D"http://illinoisissuesblog.blogspot.com/2007/03/education-and-elec=
tricity.html?widgetType=3DBlogArchive&amp;widgetId=3DBlogArchive1&amp;act=
ion=3Dtoggle&amp;dir=3Dclose&amp;toggle=3DMONTHLY-1172728800000&amp;toggl=
eopen=3DMONTHLY-1172728800000"><SPAN=20
    class=3D"zippy toggle-open">=E2=96=BC </SPAN></A><A =
class=3Dpost-count-link=20
    =
href=3D"http://illinoisissuesblog.blogspot.com/2007_03_01_archive.html">M=
arch</A>=20
    (<SPAN class=3Dpost-count>7</SPAN>)=20
    <UL class=3Dposts>
      <LI><A=20
      =
href=3D"http://illinoisissuesblog.blogspot.com/2007/03/education-and-elec=
tricity.html">Education=20
      and electricity</A>=20
      <LI><A=20
      =
href=3D"http://illinoisissuesblog.blogspot.com/2007/03/price-fixing.html"=
>Price=20
      fixing?</A>=20
      <LI><A=20
      =
href=3D"http://illinoisissuesblog.blogspot.com/2007/03/icc-calls-ameren-t=
o-account.html">ICC=20
      calls Ameren to account</A>=20
      <LI><A=20
      =
href=3D"http://illinoisissuesblog.blogspot.com/2007/03/reconsidering-reba=
te.html">Reconsidering=20
      rebate</A>=20
      <LI><A=20
      =
href=3D"http://illinoisissuesblog.blogspot.com/2007/03/budget-reaction.ht=
ml">Budget=20
      reaction</A>=20
      <LI><A=20
      =
href=3D"http://illinoisissuesblog.blogspot.com/2007/03/governors-moral-im=
perative.html">The=20
      governor's "moral imperative"</A>=20
      <LI><A=20
      =
href=3D"http://illinoisissuesblog.blogspot.com/2007/03/budget-highlights.=
html">Budget=20
      highlights</A> </LI></UL></LI></UL>
  <UL>
    <LI class=3D"archivedate collapsed"><A class=3Dtoggle=20
    =
href=3D"http://illinoisissuesblog.blogspot.com/2007/03/education-and-elec=
tricity.html?widgetType=3DBlogArchive&amp;widgetId=3DBlogArchive1&amp;act=
ion=3Dtoggle&amp;dir=3Dopen&amp;toggle=3DMONTHLY-1170309600000&amp;toggle=
open=3DMONTHLY-1172728800000"><SPAN=20
    class=3Dzippy>=E2=96=BA </SPAN></A><A class=3Dpost-count-link=20
    =
href=3D"http://illinoisissuesblog.blogspot.com/2007_02_01_archive.html">F=
ebruary</A>=20
    (<SPAN class=3Dpost-count>6</SPAN>)=20
    <UL class=3Dposts>
      <LI><A=20
      =
href=3D"http://illinoisissuesblog.blogspot.com/2007/02/utility-campaign-c=
ontributions.html">Utility=20
      campaign contributions</A>=20
      <LI><A=20
      =
href=3D"http://illinoisissuesblog.blogspot.com/2007/02/tgif.html">TGIF</A=
>=20
      <LI><A=20
      =
href=3D"http://illinoisissuesblog.blogspot.com/2007/02/obama-for-presiden=
t.html">Obama=20
      for president</A>=20
      <LI><A=20
      =
href=3D"http://illinoisissuesblog.blogspot.com/2007/02/moneymakers.html">=
Moneymakers</A>=20

      <LI><A=20
      =
href=3D"http://illinoisissuesblog.blogspot.com/2007/02/budget-buzz.html">=
Budget=20
      buzz</A>=20
      <LI><A=20
      =
href=3D"http://illinoisissuesblog.blogspot.com/2007/02/blagoterminator.ht=
ml">Blagoterminator</A>=20
      </LI></UL></LI></UL>
  <UL>
    <LI class=3D"archivedate collapsed"><A class=3Dtoggle=20
    =
href=3D"http://illinoisissuesblog.blogspot.com/2007/03/education-and-elec=
tricity.html?widgetType=3DBlogArchive&amp;widgetId=3DBlogArchive1&amp;act=
ion=3Dtoggle&amp;dir=3Dopen&amp;toggle=3DMONTHLY-1167631200000&amp;toggle=
open=3DMONTHLY-1172728800000"><SPAN=20
    class=3Dzippy>=E2=96=BA </SPAN></A><A class=3Dpost-count-link=20
    =
href=3D"http://illinoisissuesblog.blogspot.com/2007_01_01_archive.html">J=
anuary</A>=20
    (<SPAN class=3Dpost-count>4</SPAN>)=20
    <UL class=3Dposts>
      <LI><A=20
      =
href=3D"http://illinoisissuesblog.blogspot.com/2007/01/dream-job-ends-at-=
idot.html">Dream=20
      job ends at IDOT</A>=20
      <LI><A=20
      =
href=3D"http://illinoisissuesblog.blogspot.com/2007/01/mayday-mayday.html=
">Mayday,=20
      mayday</A>=20
      <LI><A=20
      =
href=3D"http://illinoisissuesblog.blogspot.com/2007/01/illinois-buzz.html=
">Illinois=20
      buzz</A>=20
      <LI><A=20
      =
href=3D"http://illinoisissuesblog.blogspot.com/2007/01/now-we-know.html">=
Now=20
      we know</A> </LI></UL></LI></UL></LI></UL>
<UL>
  <LI class=3D"archivedate collapsed"><A class=3Dtoggle=20
  =
href=3D"http://illinoisissuesblog.blogspot.com/2007/03/education-and-elec=
tricity.html?widgetType=3DBlogArchive&amp;widgetId=3DBlogArchive1&amp;act=
ion=3Dtoggle&amp;dir=3Dopen&amp;toggle=3DYEARLY-1136095200000&amp;toggleo=
pen=3DMONTHLY-1172728800000"><SPAN=20
  class=3Dzippy>=E2=96=BA </SPAN></A><A class=3Dpost-count-link=20
  =
href=3D"http://illinoisissuesblog.blogspot.com/search?updated-min=3D2006-=
01-01T00%3A00%3A00-06%3A00&amp;updated-max=3D2007-01-01T00%3A00%3A00-06%3=
A00&amp;max-results=3D50">2006</A>=20
  (<SPAN class=3Dpost-count>52</SPAN>)=20
  <UL>
    <LI class=3D"archivedate collapsed"><A class=3Dtoggle=20
    =
href=3D"http://illinoisissuesblog.blogspot.com/2007/03/education-and-elec=
tricity.html?widgetType=3DBlogArchive&amp;widgetId=3DBlogArchive1&amp;act=
ion=3Dtoggle&amp;dir=3Dopen&amp;toggle=3DMONTHLY-1164952800000&amp;toggle=
open=3DMONTHLY-1172728800000"><SPAN=20
    class=3Dzippy>=E2=96=BA </SPAN></A><A class=3Dpost-count-link=20
    =
href=3D"http://illinoisissuesblog.blogspot.com/2006_12_01_archive.html">D=
ecember</A>=20
    (<SPAN class=3Dpost-count>4</SPAN>)=20
    <UL class=3Dposts>
      <LI><A=20
      =
href=3D"http://illinoisissuesblog.blogspot.com/2006/12/phases-of-deregula=
tion.html">Phases=20
      of deregulation</A>=20
      <LI><A=20
      =
href=3D"http://illinoisissuesblog.blogspot.com/2006/12/crossfire.html">Cr=
ossfire</A>=20

      <LI><A=20
      =
href=3D"http://illinoisissuesblog.blogspot.com/2006/12/more-electrifying-=
debate.html">More=20
      electrifying debate</A>=20
      <LI><A=20
      =
href=3D"http://illinoisissuesblog.blogspot.com/2006/12/universal-health-c=
are.html">Universal=20
      health care?</A> </LI></UL></LI></UL>
  <UL>
    <LI class=3D"archivedate collapsed"><A class=3Dtoggle=20
    =
href=3D"http://illinoisissuesblog.blogspot.com/2007/03/education-and-elec=
tricity.html?widgetType=3DBlogArchive&amp;widgetId=3DBlogArchive1&amp;act=
ion=3Dtoggle&amp;dir=3Dopen&amp;toggle=3DMONTHLY-1162360800000&amp;toggle=
open=3DMONTHLY-1172728800000"><SPAN=20
    class=3Dzippy>=E2=96=BA </SPAN></A><A class=3Dpost-count-link=20
    =
href=3D"http://illinoisissuesblog.blogspot.com/2006_11_01_archive.html">N=
ovember</A>=20
    (<SPAN class=3Dpost-count>10</SPAN>)=20
    <UL class=3Dposts>
      <LI><A=20
      =
href=3D"http://illinoisissuesblog.blogspot.com/2006/11/waiting-games.html=
">Waiting=20
      games</A>=20
      <LI><A=20
      =
href=3D"http://illinoisissuesblog.blogspot.com/2006/11/what-this-means_08=
.html">What=20
      this means</A>=20
      <LI><A=20
      =
href=3D"http://illinoisissuesblog.blogspot.com/2006/11/new-term-same-quot=
es.html">New=20
      term, same quotes</A>=20
      <LI><A=20
      =
href=3D"http://illinoisissuesblog.blogspot.com/2006/11/blame-it-on-money.=
html">Blame=20
      it on the money</A>=20
      <LI><A=20
      =
href=3D"http://illinoisissuesblog.blogspot.com/2006/11/thats-way-it-goes.=
html">"That's=20
      the way it goes"</A>=20
      <LI><A=20
      =
href=3D"http://illinoisissuesblog.blogspot.com/2006/11/topinkas-coming.ht=
ml">Topinka's=20
      coming</A>=20
      <LI><A=20
      =
href=3D"http://illinoisissuesblog.blogspot.com/2006/11/birketts-response.=
html">Birkett's=20
      response</A>=20
      <LI><A=20
      =
href=3D"http://illinoisissuesblog.blogspot.com/2006/11/topinkas-first-res=
ponse.html">Topinka's=20
      first response</A>=20
      <LI><A=20
      =
href=3D"http://illinoisissuesblog.blogspot.com/2006/11/winner-already.htm=
l">Winner=20
      already?</A>=20
      <LI><A=20
      =
href=3D"http://illinoisissuesblog.blogspot.com/2006/11/election-night.htm=
l">Election=20
      night</A> </LI></UL></LI></UL>
  <UL>
    <LI class=3D"archivedate collapsed"><A class=3Dtoggle=20
    =
href=3D"http://illinoisissuesblog.blogspot.com/2007/03/education-and-elec=
tricity.html?widgetType=3DBlogArchive&amp;widgetId=3DBlogArchive1&amp;act=
ion=3Dtoggle&amp;dir=3Dopen&amp;toggle=3DMONTHLY-1159678800000&amp;toggle=
open=3DMONTHLY-1172728800000"><SPAN=20
    class=3Dzippy>=E2=96=BA </SPAN></A><A class=3Dpost-count-link=20
    =
href=3D"http://illinoisissuesblog.blogspot.com/2006_10_01_archive.html">O=
ctober</A>=20
    (<SPAN class=3Dpost-count>5</SPAN>)=20
    <UL class=3Dposts>
      <LI><A=20
      =
href=3D"http://illinoisissuesblog.blogspot.com/2006/10/breathe.html">Brea=
the</A>=20

      <LI><A=20
      =
href=3D"http://illinoisissuesblog.blogspot.com/2006/10/for-better-or-for-=
worse.html">For=20
      better or for worse</A>=20
      <LI><A=20
      =
href=3D"http://illinoisissuesblog.blogspot.com/2006/10/obama-mania_19.htm=
l">Obama=20
      mania</A>=20
      <LI><A=20
      =
href=3D"http://illinoisissuesblog.blogspot.com/2006/10/rezko-repercussion=
s.html">Rezko=20
      repercussions</A>=20
      <LI><A=20
      =
href=3D"http://illinoisissuesblog.blogspot.com/2006/10/power-play.html">P=
ower=20
      play</A> </LI></UL></LI></UL>
  <UL>
    <LI class=3D"archivedate collapsed"><A class=3Dtoggle=20
    =
href=3D"http://illinoisissuesblog.blogspot.com/2007/03/education-and-elec=
tricity.html?widgetType=3DBlogArchive&amp;widgetId=3DBlogArchive1&amp;act=
ion=3Dtoggle&amp;dir=3Dopen&amp;toggle=3DMONTHLY-1157086800000&amp;toggle=
open=3DMONTHLY-1172728800000"><SPAN=20
    class=3Dzippy>=E2=96=BA </SPAN></A><A class=3Dpost-count-link=20
    =
href=3D"http://illinoisissuesblog.blogspot.com/2006_09_01_archive.html">S=
eptember</A>=20
    (<SPAN class=3Dpost-count>1</SPAN>)=20
    <UL class=3Dposts>
      <LI><A=20
      =
href=3D"http://illinoisissuesblog.blogspot.com/2006/09/ag-wish-list.html"=
>Ag=20
      wish list</A> </LI></UL></LI></UL>
  <UL>
    <LI class=3D"archivedate collapsed"><A class=3Dtoggle=20
    =
href=3D"http://illinoisissuesblog.blogspot.com/2007/03/education-and-elec=
tricity.html?widgetType=3DBlogArchive&amp;widgetId=3DBlogArchive1&amp;act=
ion=3Dtoggle&amp;dir=3Dopen&amp;toggle=3DMONTHLY-1154408400000&amp;toggle=
open=3DMONTHLY-1172728800000"><SPAN=20
    class=3Dzippy>=E2=96=BA </SPAN></A><A class=3Dpost-count-link=20
    =
href=3D"http://illinoisissuesblog.blogspot.com/2006_08_01_archive.html">A=
ugust</A>=20
    (<SPAN class=3Dpost-count>2</SPAN>)=20
    <UL class=3Dposts>
      <LI><A=20
      =
href=3D"http://illinoisissuesblog.blogspot.com/2006/08/pension-promises.h=
tml">Pension=20
      promises</A>=20
      <LI><A=20
      =
href=3D"http://illinoisissuesblog.blogspot.com/2006/08/valuable-toll-road=
s.html">Valuable=20
      toll roads</A> </LI></UL></LI></UL>
  <UL>
    <LI class=3D"archivedate collapsed"><A class=3Dtoggle=20
    =
href=3D"http://illinoisissuesblog.blogspot.com/2007/03/education-and-elec=
tricity.html?widgetType=3DBlogArchive&amp;widgetId=3DBlogArchive1&amp;act=
ion=3Dtoggle&amp;dir=3Dopen&amp;toggle=3DMONTHLY-1151730000000&amp;toggle=
open=3DMONTHLY-1172728800000"><SPAN=20
    class=3Dzippy>=E2=96=BA </SPAN></A><A class=3Dpost-count-link=20
    =
href=3D"http://illinoisissuesblog.blogspot.com/2006_07_01_archive.html">J=
uly</A>=20
    (<SPAN class=3Dpost-count>3</SPAN>)=20
    <UL class=3Dposts>
      <LI><A=20
      =
href=3D"http://illinoisissuesblog.blogspot.com/2006/07/foia-facts.html">F=
OIA=20
      facts</A>=20
      <LI><A=20
      =
href=3D"http://illinoisissuesblog.blogspot.com/2006/07/when-in-rome.html"=
>When=20
      in Rome</A>=20
      <LI><A=20
      =
href=3D"http://illinoisissuesblog.blogspot.com/2006/07/headlines-are-good=
.html">Headlines=20
      are good</A> </LI></UL></LI></UL>
  <UL>
    <LI class=3D"archivedate collapsed"><A class=3Dtoggle=20
    =
href=3D"http://illinoisissuesblog.blogspot.com/2007/03/education-and-elec=
tricity.html?widgetType=3DBlogArchive&amp;widgetId=3DBlogArchive1&amp;act=
ion=3Dtoggle&amp;dir=3Dopen&amp;toggle=3DMONTHLY-1149138000000&amp;toggle=
open=3DMONTHLY-1172728800000"><SPAN=20
    class=3Dzippy>=E2=96=BA </SPAN></A><A class=3Dpost-count-link=20
    =
href=3D"http://illinoisissuesblog.blogspot.com/2006_06_01_archive.html">J=
une</A>=20
    (<SPAN class=3Dpost-count>3</SPAN>)=20
    <UL class=3Dposts>
      <LI><A=20
      =
href=3D"http://illinoisissuesblog.blogspot.com/2006/06/going-private-or-n=
ot.html">Going=20
      private, or not?</A>=20
      <LI><A=20
      =
href=3D"http://illinoisissuesblog.blogspot.com/2006/06/going-public.html"=
>Going=20
      public</A>=20
      <LI><A=20
      =
href=3D"http://illinoisissuesblog.blogspot.com/2006/06/horse-subsidy-hurd=
le.html">Horse=20
      subsidy hurdle</A> </LI></UL></LI></UL>
  <UL>
    <LI class=3D"archivedate collapsed"><A class=3Dtoggle=20
    =
href=3D"http://illinoisissuesblog.blogspot.com/2007/03/education-and-elec=
tricity.html?widgetType=3DBlogArchive&amp;widgetId=3DBlogArchive1&amp;act=
ion=3Dtoggle&amp;dir=3Dopen&amp;toggle=3DMONTHLY-1146459600000&amp;toggle=
open=3DMONTHLY-1172728800000"><SPAN=20
    class=3Dzippy>=E2=96=BA </SPAN></A><A class=3Dpost-count-link=20
    =
href=3D"http://illinoisissuesblog.blogspot.com/2006_05_01_archive.html">M=
ay</A>=20
    (<SPAN class=3Dpost-count>12</SPAN>)=20
    <UL class=3Dposts>
      <LI><A=20
      =
href=3D"http://illinoisissuesblog.blogspot.com/2006/05/major-education-pr=
oposal.html">Major=20
      education proposal</A>=20
      <LI><A=20
      =
href=3D"http://illinoisissuesblog.blogspot.com/2006/05/more-background.ht=
ml">More=20
      background</A>=20
      <LI><A=20
      =
href=3D"http://illinoisissuesblog.blogspot.com/2006/05/more-stressors.htm=
l">More=20
      stressors</A>=20
      <LI><A=20
      =
href=3D"http://illinoisissuesblog.blogspot.com/2006/05/buckle-up.html">Bu=
ckle=20
      up</A>=20
      <LI><A=20
      =
href=3D"http://illinoisissuesblog.blogspot.com/2006/05/pick-your-poison.h=
tml">Pick=20
      your poison</A> </LI></UL></LI></UL>
  <UL>
    <LI class=3D"archivedate collapsed"><A class=3Dtoggle=20
    =
href=3D"http://illinoisissuesblog.blogspot.com/2007/03/education-and-elec=
tricity.html?widgetType=3DBlogArchive&amp;widgetId=3DBlogArchive1&amp;act=
ion=3Dtoggle&amp;dir=3Dopen&amp;toggle=3DMONTHLY-1143871200000&amp;toggle=
open=3DMONTHLY-1172728800000"><SPAN=20
    class=3Dzippy>=E2=96=BA </SPAN></A><A class=3Dpost-count-link=20
    =
href=3D"http://illinoisissuesblog.blogspot.com/2006_04_01_archive.html">A=
pril</A>=20
    (<SPAN class=3Dpost-count>9</SPAN>) </LI></UL>
  <UL>
    <LI class=3D"archivedate collapsed"><A class=3Dtoggle=20
    =
href=3D"http://illinoisissuesblog.blogspot.com/2007/03/education-and-elec=
tricity.html?widgetType=3DBlogArchive&amp;widgetId=3DBlogArchive1&amp;act=
ion=3Dtoggle&amp;dir=3Dopen&amp;toggle=3DMONTHLY-1141192800000&amp;toggle=
open=3DMONTHLY-1172728800000"><SPAN=20
    class=3Dzippy>=E2=96=BA </SPAN></A><A class=3Dpost-count-link=20
    =
href=3D"http://illinoisissuesblog.blogspot.com/2006_03_01_archive.html">M=
arch</A>=20
    (<SPAN class=3Dpost-count>3</SPAN>) </LI></UL></LI></UL></DIV></DIV>
<DIV class=3Dclear></DIV><SPAN class=3Dwidget-item-control><SPAN=20
class=3D"item-control blog-admin"><A class=3Dquickedit title=3DEdit=20
onclick=3D'return =
_WidgetManager._PopupConfig(document.getElementById("BlogArchive1"));'=20
href=3D"http://www2.blogger.com/rearrange?blogID=3D23816706&amp;widgetTyp=
e=3DBlogArchive&amp;widgetId=3DBlogArchive1&amp;action=3DeditWidget"=20
target=3DconfigBlogArchive1><SPAN class=3Dquick-edit-icon>&nbsp;</SPAN>=20
</A></SPAN></SPAN>
<DIV class=3Dclear></DIV></DIV></DIV>
<DIV class=3D"widget LinkList" id=3DLinkList1>
<H2>Links</H2>
<DIV class=3Dwidget-content>
<UL>
  <LI><A href=3D"http://illinoisissues.uis.edu/">Illinois Issues =
Online</A>=20
  <LI><A href=3D"http://illinoisissues.uis.edu/news/news.html">Illinois =
Issues=20
  News</A>=20
  <LI><A href=3D"http://cspl.uis.edu/">Center for State Policy and =
Leadership</A>=20
  </LI></UL>
<DIV class=3Dclear></DIV><SPAN class=3Dwidget-item-control><SPAN=20
class=3D"item-control blog-admin"><A class=3Dquickedit title=3DEdit=20
onclick=3D'return =
_WidgetManager._PopupConfig(document.getElementById("LinkList1"));'=20
href=3D"http://www2.blogger.com/rearrange?blogID=3D23816706&amp;widgetTyp=
e=3DLinkList&amp;widgetId=3DLinkList1&amp;action=3DeditWidget"=20
target=3DconfigLinkList1><SPAN class=3Dquick-edit-icon>&nbsp;</SPAN>=20
</A></SPAN></SPAN>
<DIV class=3Dclear></DIV></DIV></DIV></DIV></DIV>
<DIV class=3Dclear>&nbsp;</DIV></DIV></DIV></DIV>
<SCRIPT type=3Dtext/javascript>=0A=
_WidgetManager._Init('http://www2.blogger.com/rearrange?blogID=3D23816706=
', =
'http://illinoisissuesblog.blogspot.com/2007/03/education-and-electricity=
.html','23816706');=0A=
_WidgetManager._SetPageActionUrl('http://www2.blogger.com/display?blogID=3D=
23816706', 'BLaj1_LVdFeMsXxL9YZzTg1qnVA=3D:1174508015472');=0A=
_WidgetManager._SetDataContext([{'name': 'blog', 'data': {'title': =
'Illinois Issues blog', 'pageType': 'item', 'url': =
'http://illinoisissuesblog.blogspot.com/2007/03/education-and-electricity=
.html', 'homepageUrl': =
'http://illinoisissuesblog.blogspot.com/index.html', 'pageTitle': =
'Illinois Issues blog: Education and electricity', 'encoding': 'UTF-8', =
'isPrivate': false, 'feedLinks': '\u003clink rel\u003d\"alternate\" =
type\u003d\"application/atom+xml\" title\u003d\"Illinois Issues blog - =
Atom\" =
href\u003d\"http://illinoisissuesblog.blogspot.com/feeds/posts/default\" =
/\>\n\u003clink rel\u003d\"alternate\" type\u003d\"application/rss+xml\" =
title\u003d\"Illinois Issues blog - RSS\" =
href\u003d\"http://illinoisissuesblog.blogspot.com/feeds/posts/default?al=
t\u003drss\" /\>\n\u003clink rel\u003d\"service.post\" =
type\u003d\"application/atom+xml\" title\u003d\"Illinois Issues blog - =
Atom\" href\u003d\"http://www.blogger.com/feeds/23816706/posts/default\" =
/\>\n\u003clink rel\u003d\"EditURI\" type\u003d\"application/rsd+xml\" =
title\u003d\"RSD\" =
href\u003d\"http://www2.blogger.com/rsd.g?blogID\u003d23816706\" =
/\>\n\u003clink rel\u003d\"alternate\" =
type\u003d\"application/atom+xml\" title\u003d\"Illinois Issues blog - =
Atom\" =
href\u003d\"http://illinoisissuesblog.blogspot.com/feeds/8652723838241301=
555/comments/default\" /\>\n'}}]);=0A=
_WidgetManager._SetSystemMarkup({'layout': {'varName': '', 'template': =
'\u003cdiv class\u003d\'widget-wrap1\'\>  \u003cdiv =
class\u003d\'widget-wrap2\'\> \u003cdiv class\u003d\'widget-wrap3\'\> =
\u003cdiv class\u003d\'widget-content\'\> \u003cdiv =
class\u003d\'layout-title\'\>\u003cdata:layout-title\>\u003c/data:layout-=
title\>\u003c/div\> \u003ca class\u003d\'editlink\' =
expr:href\u003d\'data:widget.quickEditUrl\' expr:onclick\u003d\'\"return =
_WidgetManager._PopupConfig(document.getElementById(\\\"\" +       =
data:widget.instanceId + \"\\\"));\"\' =
target\u003d\'chooseWidget\'\>\u003cdata:edit-link\>\u003c/data:edit-link=
\>\u003c/a\> \u003c/div\> \u003c/div\> \u003c/div\> \u003c/div\>'}, =
'quickedit': {'varName': '', 'template': '\u003cdiv =
class\u003d\'clear\'\>\u003c/div\> \u003cspan =
class\u003d\'widget-item-control\'\> \u003cspan =
class\u003d\'item-control blog-admin\'\> \u003ca =
class\u003d\'quickedit\' expr:href\u003d\'data:widget.quickEditUrl\' =
expr:onclick\u003d\'\"return =
_WidgetManager._PopupConfig(document.getElementById(\\\"\" +       =
data:widget.instanceId + \"\\\"));\"\' expr:target\u003d\'\"config\" + =
data:widget.instanceId\' expr:title\u003d\'data:edit-link\'\> \u003cspan =
class\u003d\'quick-edit-icon\'\>&#160;\u003c/span\> \u003c/a\> =
\u003c/span\> \u003c/span\> \u003cdiv =
class\u003d\'clear\'\>\u003c/div\>'}, 'all-head-content': {'varName': =
'page', 'template': '\u003cmeta expr:content\u003d\'\"text/html; =
charset\u003d\" + data:page.encoding\' =
http-equiv\u003d\'Content-Type\'/\> \u003cmeta content\u003d\'true\' =
name\u003d\'MSSmartTagsPreventParsing\'/\> \u003cmeta =
content\u003d\'blogger\' name\u003d\'generator\'/\> =
\u003cdata:blog.feedLinks\>\u003c/data:blog.feedLinks\> \u003cb:if =
cond\u003d\'data:page.isPrivate\'\> \u003cmeta =
content\u003d\'NOINDEX,NOFOLLOW\' name\u003d\'robots\'/\> =
\u003c/b:if\>'}});=0A=
_WidgetManager._RegisterWidget('_ProfileView', new =
_WidgetInfo('Profile1',  'sidebar',{'main': {'varName': '', 'template': =
'\u003cb:if cond\u003d\'data:title !\u003d \"\"\'\> =
\u003ch2\>\u003cdata:title\>\u003c/data:title\>\u003c/h2\> \u003c/b:if\> =
\u003cdiv class\u003d\'widget-content\'\> \u003cb:if =
cond\u003d\'data:team \u003d\u003d \"true\"\'\>  \u003cul\> \u003cb:loop =
values\u003d\'data:authors\' var\u003d\'i\'\> \u003cli\>\u003ca =
expr:href\u003d\'data:i.userUrl\'\>\u003cdata:i.display-name\>\u003c/data=
:i.display-name\>\u003c/a\>\u003c/li\> \u003c/b:loop\> \u003c/ul\> =
\u003cb:else\>\u003c/b:else\>  \u003cb:if cond\u003d\'data:photo.url =
!\u003d \"\"\'\> \u003ca expr:href\u003d\'data:userUrl\'\>\u003cimg =
class\u003d\'profile-img\' expr:alt\u003d\'data:photo.alt\' =
expr:height\u003d\'data:photo.height\' expr:src\u003d\'data:photo.url\' =
expr:width\u003d\'data:photo.width\'/\>\u003c/a\> \u003c/b:if\> \u003cdl =
class\u003d\'profile-datablock\'\> \u003cdt =
class\u003d\'profile-data\'\>\u003cdata:displayname\>\u003c/data:displayn=
ame\>\u003c/dt\> \u003cb:if cond\u003d\'data:showlocation \u003d\u003d =
\"true\"\'\> \u003cdd =
class\u003d\'profile-data\'\>\u003cdata:location\>\u003c/data:location\>\=
u003c/dd\> \u003c/b:if\> \u003cb:if cond\u003d\'data:aboutme !\u003d =
\"\"\'\>\u003cdd =
class\u003d\'profile-textblock\'\>\u003cdata:aboutme\>\u003c/data:aboutme=
\>\u003c/dd\>\u003c/b:if\> \u003c/dl\> \u003ca =
class\u003d\'profile-link\' =
expr:href\u003d\'data:userUrl\'\>\u003cdata:viewProfileMsg\>\u003c/data:v=
iewProfileMsg\>\u003c/a\> \u003c/b:if\> \u003cb:include =
name\u003d\'quickedit\'\>\u003c/b:include\> \u003c/div\>'}}, =
document.getElementById('Profile1'), {}, 'displayModeFull'));=0A=
_WidgetManager._RegisterWidget('_LabelView', new _WidgetInfo('Label1',  =
'sidebar',{'main': {'varName': '', 'template': '\u003cb:if =
cond\u003d\'data:title\'\> =
\u003ch2\>\u003cdata:title\>\u003c/data:title\>\u003c/h2\> \u003c/b:if\> =
\u003cdiv class\u003d\'widget-content\'\> \u003cul\> \u003cb:loop =
values\u003d\'data:labels\' var\u003d\'label\'\> \u003cli\> \u003cb:if =
cond\u003d\'data:blog.url \u003d\u003d data:label.url\'\> =
\u003cdata:label.name\>\u003c/data:label.name\> =
\u003cb:else\>\u003c/b:else\> \u003ca =
expr:href\u003d\'data:label.url\'\>\u003cdata:label.name\>\u003c/data:lab=
el.name\>\u003c/a\> \u003c/b:if\> =
(\u003cdata:label.count\>\u003c/data:label.count\>) \u003c/li\> =
\u003c/b:loop\> \u003c/ul\> \u003cb:include =
name\u003d\'quickedit\'\>\u003c/b:include\> \u003c/div\>'}}, =
document.getElementById('Label1'), {}, 'displayModeFull'));=0A=
_WidgetManager._RegisterWidget('_BlogArchiveView', new =
_WidgetInfo('BlogArchive1',  'sidebar',{'main': {'varName': '', =
'template': '\u003cb:if cond\u003d\'data:title\'\> =
\u003ch2\>\u003cdata:title\>\u003c/data:title\>\u003c/h2\> \u003c/b:if\> =
\u003cdiv class\u003d\'widget-content\'\> \u003cdiv =
id\u003d\'ArchiveList\'\> \u003cdiv =
expr:id\u003d\'data:widget.instanceId + \"_ArchiveList\"\'\> \u003cb:if =
cond\u003d\'data:style \u003d\u003d \"HIERARCHY\"\'\> \u003cb:include =
data\u003d\'data\' name\u003d\'interval\'\>\u003c/b:include\> =
\u003c/b:if\> \u003cb:if cond\u003d\'data:style \u003d\u003d =
\"FLAT\"\'\> \u003cb:include data\u003d\'data\' =
name\u003d\'flat\'\>\u003c/b:include\> \u003c/b:if\> \u003cb:if =
cond\u003d\'data:style \u003d\u003d \"MENU\"\'\> \u003cb:include =
data\u003d\'data\' name\u003d\'menu\'\>\u003c/b:include\> \u003c/b:if\> =
\u003c/div\> \u003c/div\> \u003cb:include =
name\u003d\'quickedit\'\>\u003c/b:include\> \u003c/div\>'}, 'flat': =
{'varName': 'data', 'template': '\u003cul\> \u003cb:loop =
values\u003d\'data:data\' var\u003d\'i\'\> \u003cli =
class\u003d\'archivedate\'\> \u003ca =
expr:href\u003d\'data:i.url\'\>\u003cdata:i.name\>\u003c/data:i.name\>\u0=
03c/a\> (\u003cdata:i.post-count\>\u003c/data:i.post-count\>) =
\u003c/li\> \u003c/b:loop\> \u003c/ul\>'}, 'menu': {'varName': 'data', =
'template': '\u003cselect expr:id\u003d\'data:widget.instanceId + =
\"_ArchiveMenu\"\'\> \u003coption =
value\u003d\'\'\>\u003cdata:title\>\u003c/data:title\>\u003c/option\> =
\u003cb:loop values\u003d\'data:data\' var\u003d\'i\'\> \u003coption =
expr:value\u003d\'data:i.url\'\>\u003cdata:i.name\>\u003c/data:i.name\> =
(\u003cdata:i.post-count\>\u003c/data:i.post-count\>)\u003c/option\> =
\u003c/b:loop\> \u003c/select\>'}, 'interval': {'varName': =
'intervalData', 'template': '\u003cb:loop =
values\u003d\'data:intervalData\' var\u003d\'i\'\> \u003cul\> \u003cli =
expr:class\u003d\'\"archivedate \" + data:i.expclass\'\> \u003cb:include =
data\u003d\'i\' name\u003d\'toggle\'\>\u003c/b:include\> \u003ca =
class\u003d\'post-count-link\' =
expr:href\u003d\'data:i.url\'\>\u003cdata:i.name\>\u003c/data:i.name\>\u0=
03c/a\> (\u003cspan =
class\u003d\'post-count\'\>\u003cdata:i.post-count\>\u003c/data:i.post-co=
unt\>\u003c/span\>) \u003cb:if cond\u003d\'data:i.data\'\> =
\u003cb:include data\u003d\'i.data\' =
name\u003d\'interval\'\>\u003c/b:include\> \u003c/b:if\> \u003cb:if =
cond\u003d\'data:i.posts\'\> \u003cb:include data\u003d\'i.posts\' =
name\u003d\'posts\'\>\u003c/b:include\> \u003c/b:if\> \u003c/li\> =
\u003c/ul\> \u003c/b:loop\>'}, 'toggle': {'varName': 'interval', =
'template': '\u003cb:if cond\u003d\'data:interval.toggleId\'\> =
\u003cb:if cond\u003d\'data:interval.expclass \u003d\u003d =
\"expanded\"\'\> \u003ca class\u003d\'toggle\' =
expr:href\u003d\'data:widget.actionUrl + \"&amp;action\u003dtoggle\" +   =
    \"&amp;dir\u003dclose&amp;toggle\u003d\" + data:interval.toggleId +  =
     \"&amp;toggleopen\u003d\" + data:toggleopen\'\> \u003cspan =
class\u003d\'zippy toggle-open\'\>&#9660; \u003c/span\> \u003c/a\> =
\u003cb:else\>\u003c/b:else\> \u003ca class\u003d\'toggle\' =
expr:href\u003d\'data:widget.actionUrl + \"&amp;action\u003dtoggle\" +   =
      \"&amp;dir\u003dopen&amp;toggle\u003d\" + data:interval.toggleId + =
        \"&amp;toggleopen\u003d\" + data:toggleopen\'\> \u003cspan =
class\u003d\'zippy\'\>&#9658; \u003c/span\> \u003c/a\> \u003c/b:if\> =
\u003c/b:if\>'}, 'posts': {'varName': 'posts', 'template': '\u003cul =
class\u003d\'posts\'\> \u003cb:loop values\u003d\'data:posts\' =
var\u003d\'i\'\> \u003cli\>\u003ca =
expr:href\u003d\'data:i.url\'\>\u003cdata:i.title\>\u003c/data:i.title\>\=
u003c/a\>\u003c/li\> \u003c/b:loop\> \u003c/ul\>'}}, =
document.getElementById('BlogArchive1'), {}, 'displayModeFull'));=0A=
_WidgetManager._RegisterWidget('_LinkListView', new =
_WidgetInfo('LinkList1',  'sidebar',{'main': {'varName': '', 'template': =
'\u003cb:if =
cond\u003d\'data:title\'\>\u003ch2\>\u003cdata:title\>\u003c/data:title\>=
\u003c/h2\>\u003c/b:if\> \u003cdiv class\u003d\'widget-content\'\> =
\u003cul\> \u003cb:loop values\u003d\'data:links\' var\u003d\'link\'\> =
\u003cli\>\u003ca =
expr:href\u003d\'data:link.target\'\>\u003cdata:link.name\>\u003c/data:li=
nk.name\>\u003c/a\>\u003c/li\> \u003c/b:loop\> \u003c/ul\> =
\u003cb:include name\u003d\'quickedit\'\>\u003c/b:include\> =
\u003c/div\>'}}, document.getElementById('LinkList1'), {}, =
'displayModeFull'));=0A=
_WidgetManager._RegisterWidget('_BlogView', new _WidgetInfo('Blog1',  =
'main',{'main': {'varName': 'top', 'template': '\u003cdiv =
class\u003d\'blog-posts\'\> \u003cb:include data\u003d\'top\' =
name\u003d\'status-message\'\>\u003c/b:include\> \u003cb:loop =
values\u003d\'data:posts\' var\u003d\'post\'\> \u003cb:if =
cond\u003d\'data:post.dateHeader\'\> \u003ch2 =
class\u003d\'date-header\'\>\u003cdata:post.dateHeader\>\u003c/data:post.=
dateHeader\>\u003c/h2\> \u003c/b:if\> \u003cb:include data\u003d\'post\' =
name\u003d\'post\'\>\u003c/b:include\> \u003cb:if =
cond\u003d\'data:blog.pageType \u003d\u003d \"item\"\'\> \u003cb:include =
data\u003d\'post\' name\u003d\'comments\'\>\u003c/b:include\> =
\u003c/b:if\> \u003c/b:loop\> \u003c/div\>  \u003cb:include =
name\u003d\'nextprev\'\>\u003c/b:include\>  \u003cb:include =
name\u003d\'feedLinks\'\>\u003c/b:include\>'}, 'nextprev': {'varName': =
'', 'template': '\u003cdiv class\u003d\'blog-pager\' =
id\u003d\'blog-pager\'\> \u003cb:if cond\u003d\'data:newerPageUrl\'\> =
\u003cspan id\u003d\'blog-pager-newer-link\'\> \u003ca =
class\u003d\'blog-pager-newer-link\' =
expr:href\u003d\'data:newerPageUrl\' =
expr:id\u003d\'data:widget.instanceId + \"_blog-pager-newer-link\"\' =
expr:title\u003d\'data:newerPageTitle\'\>\u003cdata:newerPageTitle\>\u003=
c/data:newerPageTitle\>\u003c/a\> \u003c/span\> \u003c/b:if\> \u003cb:if =
cond\u003d\'data:olderPageUrl\'\> \u003cspan =
id\u003d\'blog-pager-older-link\'\> \u003ca =
class\u003d\'blog-pager-older-link\' =
expr:href\u003d\'data:olderPageUrl\' =
expr:id\u003d\'data:widget.instanceId + \"_blog-pager-older-link\"\' =
expr:title\u003d\'data:olderPageTitle\'\>\u003cdata:olderPageTitle\>\u003=
c/data:olderPageTitle\>\u003c/a\> \u003c/span\> \u003c/b:if\> \u003cb:if =
cond\u003d\'data:blog.homepageUrl !\u003d data:blog.url\'\> \u003ca =
class\u003d\'home-link\' =
expr:href\u003d\'data:blog.homepageUrl\'\>\u003cdata:homeMsg\>\u003c/data=
:homeMsg\>\u003c/a\> \u003cb:else\>\u003c/b:else\> \u003cb:if =
cond\u003d\'data:newerPageUrl\'\> \u003ca class\u003d\'home-link\' =
expr:href\u003d\'data:blog.homepageUrl\'\>\u003cdata:homeMsg\>\u003c/data=
:homeMsg\>\u003c/a\> \u003c/b:if\> \u003c/b:if\> \u003c/div\> \u003cdiv =
class\u003d\'clear\'\>\u003c/div\>'}, 'post': {'varName': 'post', =
'template': '\u003cdiv class\u003d\'post uncustomized-post-template\'\> =
\u003ca expr:name\u003d\'data:post.id\'\>\u003c/a\> \u003cb:if =
cond\u003d\'data:post.title\'\> \u003ch3 class\u003d\'post-title\'\> =
\u003cb:if cond\u003d\'data:post.link\'\> \u003ca =
expr:href\u003d\'data:post.link\'\>\u003cdata:post.title\>\u003c/data:pos=
t.title\>\u003c/a\> \u003cb:else\>\u003c/b:else\> \u003cb:if =
cond\u003d\'data:post.url\'\> \u003ca =
expr:href\u003d\'data:post.url\'\>\u003cdata:post.title\>\u003c/data:post=
.title\>\u003c/a\> \u003cb:else\>\u003c/b:else\> =
\u003cdata:post.title\>\u003c/data:post.title\> \u003c/b:if\> =
\u003c/b:if\> \u003c/h3\> \u003c/b:if\> \u003cdiv =
class\u003d\'post-header-line-1\'\>\u003c/div\> \u003cdiv =
class\u003d\'post-body\'\> =
\u003cp\>\u003cdata:post.body\>\u003c/data:post.body\>\u003c/p\> =
\u003cdiv style\u003d\'clear: both;\'\>\u003c/div\>  \u003c/div\> =
\u003cdiv class\u003d\'post-footer\'\> \u003cp =
class\u003d\'post-footer-line post-footer-line-1\'\> \u003cspan =
class\u003d\'post-author\'\> \u003cb:if =
cond\u003d\'data:top.showAuthor\'\> =
\u003cdata:top.authorLabel\>\u003c/data:top.authorLabel\> =
\u003cdata:post.author\>\u003c/data:post.author\> \u003c/b:if\> =
\u003c/span\> \u003cspan class\u003d\'post-timestamp\'\> \u003cb:if =
cond\u003d\'data:top.showTimestamp\'\> =
\u003cdata:top.timestampLabel\>\u003c/data:top.timestampLabel\> =
\u003cb:if cond\u003d\'data:post.url\'\> \u003ca =
class\u003d\'timestamp-link\' expr:href\u003d\'data:post.url\' =
title\u003d\'permanent =
link\'\>\u003cdata:post.timestamp\>\u003c/data:post.timestamp\>\u003c/a\>=
 \u003c/b:if\> \u003c/b:if\> \u003c/span\> \u003cspan =
class\u003d\'post-comment-link\'\> \u003cb:if =
cond\u003d\'data:blog.pageType !\u003d \"item\"\'\> \u003cb:if =
cond\u003d\'data:post.allowComments\'\> \u003ca =
class\u003d\'comment-link\' expr:href\u003d\'data:post.addCommentUrl\' =
expr:onclick\u003d\'data:post.addCommentOnclick\'\>\u003cb:if =
cond\u003d\'data:post.numComments \u003d\u003d 1\'\>1 =
\u003cdata:top.commentLabel\>\u003c/data:top.commentLabel\>\u003cb:else\>=
\u003c/b:else\>\u003cdata:post.numComments\>\u003c/data:post.numComments\=
> =
\u003cdata:top.commentLabelPlural\>\u003c/data:top.commentLabelPlural\>\u=
003c/b:if\>\u003c/a\> \u003c/b:if\> \u003c/b:if\> \u003c/span\>  =
\u003cspan class\u003d\'post-backlinks post-comment-link\'\> \u003cb:if =
cond\u003d\'data:blog.pageType !\u003d \"item\"\'\> \u003cb:if =
cond\u003d\'data:post.showBacklinks\'\> \u003ca =
class\u003d\'comment-link\' expr:href\u003d\'data:post.url + =
\"#links\"\'\>\u003cdata:top.backlinkLabel\>\u003c/data:top.backlinkLabel=
\>\u003c/a\> \u003c/b:if\> \u003c/b:if\> \u003c/span\> \u003cspan =
class\u003d\'post-icons\'\>  \u003cb:if =
cond\u003d\'data:post.emailPostUrl\'\> \u003cspan =
class\u003d\'item-action\'\> \u003ca =
expr:href\u003d\'data:post.emailPostUrl\' =
expr:title\u003d\'data:top.emailPostMsg\'\> \u003cspan =
class\u003d\'email-post-icon\'\>&#160;\u003c/span\> \u003c/a\> =
\u003c/span\> \u003c/b:if\>  \u003cb:include data\u003d\'post\' =
name\u003d\'postQuickEdit\'\>\u003c/b:include\> \u003c/span\> \u003c/p\> =
\u003cp class\u003d\'post-footer-line post-footer-line-2\'\> \u003cspan =
class\u003d\'post-labels\'\> \u003cb:if cond\u003d\'data:post.labels\'\> =
\u003cdata:postLabelsLabel\>\u003c/data:postLabelsLabel\> \u003cb:loop =
values\u003d\'data:post.labels\' var\u003d\'label\'\> \u003ca =
expr:href\u003d\'data:label.url\' =
rel\u003d\'tag\'\>\u003cdata:label.name\>\u003c/data:label.name\>\u003c/a=
\>\u003cb:if cond\u003d\'data:label.isLast !\u003d =
\"true\"\'\>,\u003c/b:if\> \u003c/b:loop\> \u003c/b:if\> \u003c/span\> =
\u003c/p\> \u003cp class\u003d\'post-footer-line =
post-footer-line-3\'\>\u003c/p\> \u003c/div\> \u003c/div\>'}, =
'postQuickEdit': {'varName': 'post', 'template': '\u003cb:if =
cond\u003d\'data:post.editUrl\'\> \u003cspan =
expr:class\u003d\'\"item-control \" + data:post.adminClass\'\> \u003ca =
expr:href\u003d\'data:post.editUrl\' =
expr:title\u003d\'data:top.editPostMsg\'\> \u003cspan =
class\u003d\'quick-edit-icon\'\>&#160;\u003c/span\> \u003c/a\> =
\u003c/span\> \u003c/b:if\>'}, 'commentDeleteIcon': {'varName': =
'comment', 'template': '\u003cspan expr:class\u003d\'\"item-control \" + =
data:comment.adminClass\'\> \u003ca =
expr:href\u003d\'data:comment.deleteUrl\' =
expr:title\u003d\'data:top.deleteCommentMsg\'\> \u003cspan =
class\u003d\'delete-comment-icon\'\>&#160;\u003c/span\> \u003c/a\> =
\u003c/span\>'}, 'backlinkDeleteIcon': {'varName': 'backlink', =
'template': '\u003cspan expr:class\u003d\'\"item-control \" + =
data:backlink.adminClass\'\> \u003ca =
expr:href\u003d\'data:backlink.deleteUrl\' =
expr:title\u003d\'data:top.deleteBacklinkMsg\'\> \u003cspan =
class\u003d\'delete-comment-icon\'\>&#160;\u003c/span\> \u003c/a\> =
\u003c/span\>'}, 'comments': {'varName': 'post', 'template': '\u003cdiv =
class\u003d\'comments\' id\u003d\'comments\'\> \u003ca =
name\u003d\'comments\'\>\u003c/a\> \u003cb:if =
cond\u003d\'data:post.allowComments\'\> \u003ch4\> \u003cb:if =
cond\u003d\'data:post.numComments \u003d\u003d 1\'\> 1 =
\u003cdata:commentLabel\>\u003c/data:commentLabel\>: =
\u003cb:else\>\u003c/b:else\> =
\u003cdata:post.numComments\>\u003c/data:post.numComments\> =
\u003cdata:commentLabelPlural\>\u003c/data:commentLabelPlural\>: =
\u003c/b:if\> \u003c/h4\> \u003cdl id\u003d\'comments-block\'\> =
\u003cb:loop values\u003d\'data:post.comments\' var\u003d\'comment\'\> =
\u003cdt class\u003d\'comment-author\' expr:id\u003d\'\"comment-\" + =
data:comment.id\'\> \u003ca expr:name\u003d\'\"comment-\" + =
data:comment.id\'\>\u003c/a\> \u003cb:if =
cond\u003d\'data:comment.authorUrl\'\> \u003ca =
expr:href\u003d\'data:comment.authorUrl\' =
rel\u003d\'nofollow\'\>\u003cdata:comment.author\>\u003c/data:comment.aut=
hor\>\u003c/a\> \u003cb:else\>\u003c/b:else\> =
\u003cdata:comment.author\>\u003c/data:comment.author\> \u003c/b:if\> =
\u003cdata:commentPostedByMsg\>\u003c/data:commentPostedByMsg\> =
\u003c/dt\> \u003cdd class\u003d\'comment-body\'\> \u003cb:if =
cond\u003d\'data:comment.isDeleted\'\> \u003cspan =
class\u003d\'deleted-comment\'\>\u003cdata:comment.body\>\u003c/data:comm=
ent.body\>\u003c/span\> \u003cb:else\>\u003c/b:else\> =
\u003cp\>\u003cdata:comment.body\>\u003c/data:comment.body\>\u003c/p\> =
\u003c/b:if\> \u003c/dd\> \u003cdd class\u003d\'comment-footer\'\> =
\u003cspan class\u003d\'comment-timestamp\'\> \u003ca =
expr:href\u003d\'\"#comment-\" + data:comment.id\' title\u003d\'comment =
permalink\'\> =
\u003cdata:comment.timestamp\>\u003c/data:comment.timestamp\> \u003c/a\> =
\u003cb:include data\u003d\'comment\' =
name\u003d\'commentDeleteIcon\'\>\u003c/b:include\> \u003c/span\> =
\u003c/dd\> \u003c/b:loop\> \u003c/dl\> \u003cp =
class\u003d\'comment-footer\'\> \u003ca =
expr:href\u003d\'data:post.addCommentUrl\' =
expr:onclick\u003d\'data:post.addCommentOnclick\'\>\u003cdata:postComment=
Msg\>\u003c/data:postCommentMsg\>\u003c/a\> \u003c/p\> \u003c/b:if\> =
\u003cdiv id\u003d\'backlinks-container\'\> \u003cdiv =
expr:id\u003d\'data:widget.instanceId + \"_backlinks-container\"\'\> =
\u003cb:if cond\u003d\'data:post.showBacklinks\'\> \u003cb:include =
data\u003d\'post\' name\u003d\'backlinks\'\>\u003c/b:include\> =
\u003c/b:if\> \u003c/div\> \u003c/div\> \u003c/div\>'}, 'backlinks': =
{'varName': 'post', 'template': '\u003ca =
name\u003d\'links\'\>\u003c/a\>\u003ch4\>\u003cdata:post.backlinksLabel\>=
\u003c/data:post.backlinksLabel\>\u003c/h4\> \u003cb:if =
cond\u003d\'data:post.numBacklinks !\u003d 0\'\> \u003cdl =
class\u003d\'comments-block\' id\u003d\'comments-block\'\> \u003cb:loop =
values\u003d\'data:post.backlinks\' var\u003d\'backlink\'\> \u003cdiv =
class\u003d\'collapsed-backlink backlink-control\'\> \u003cdt =
class\u003d\'comment-title\'\> \u003cspan =
class\u003d\'backlink-toggle-zippy\'\>&#160;\u003c/span\> \u003ca =
expr:href\u003d\'data:backlink.url\' =
rel\u003d\'nofollow\'\>\u003cdata:backlink.title\>\u003c/data:backlink.ti=
tle\>\u003c/a\> \u003cb:include data\u003d\'backlink\' =
name\u003d\'backlinkDeleteIcon\'\>\u003c/b:include\> \u003c/dt\> =
\u003cdd class\u003d\'comment-body collapseable\'\> =
\u003cdata:backlink.snippet\>\u003c/data:backlink.snippet\> \u003c/dd\> =
\u003cdd class\u003d\'comment-footer collapseable\'\> \u003cspan =
class\u003d\'comment-author\'\>\u003cdata:post.authorLabel\>\u003c/data:p=
ost.authorLabel\> =
\u003cdata:backlink.author\>\u003c/data:backlink.author\>\u003c/span\> =
\u003cspan =
class\u003d\'comment-timestamp\'\>\u003cdata:post.timestampLabel\>\u003c/=
data:post.timestampLabel\> =
\u003cdata:backlink.timestamp\>\u003c/data:backlink.timestamp\>\u003c/spa=
n\> \u003c/dd\> \u003c/div\> \u003c/b:loop\> \u003c/dl\> \u003c/b:if\> =
\u003cp class\u003d\'comment-footer\'\> \u003ca =
class\u003d\'comment-link\' expr:href\u003d\'data:post.createLinkUrl\' =
expr:id\u003d\'data:widget.instanceId + \"_backlinks-create-link\"\' =
target\u003d\'_blank\'\>\u003cdata:post.createLinkLabel\>\u003c/data:post=
.createLinkLabel\>\u003c/a\> \u003c/p\>'}, 'feedLinks': {'varName': '', =
'template': '\u003cb:if cond\u003d\'data:blog.pageType !\u003d =
\"item\"\'\>  \u003cb:if cond\u003d\'data:feedLinks\'\> \u003cdiv =
class\u003d\'blog-feeds\'\> \u003cb:include data\u003d\'feedLinks\' =
name\u003d\'feedLinksBody\'\>\u003c/b:include\> \u003c/div\> =
\u003c/b:if\> \u003cb:else\>\u003c/b:else\>  \u003cdiv =
class\u003d\'post-feeds\'\> \u003cb:loop values\u003d\'data:posts\' =
var\u003d\'post\'\> \u003cb:if cond\u003d\'data:post.allowComments\'\> =
\u003cb:if cond\u003d\'data:post.feedLinks\'\> \u003cb:include =
data\u003d\'post.feedLinks\' =
name\u003d\'feedLinksBody\'\>\u003c/b:include\> \u003c/b:if\> =
\u003c/b:if\> \u003c/b:loop\> \u003c/div\> \u003c/b:if\>'}, =
'feedLinksBody': {'varName': 'links', 'template': '\u003cdiv =
class\u003d\'feed-links\'\> =
\u003cdata:feedLinksMsg\>\u003c/data:feedLinksMsg\> \u003cb:loop =
values\u003d\'data:links\' var\u003d\'f\'\> \u003ca =
class\u003d\'feed-link\' expr:href\u003d\'data:f.url\' =
expr:type\u003d\'data:f.mimeType\' =
target\u003d\'_blank\'\>\u003cdata:f.name\>\u003c/data:f.name\> =
(\u003cdata:f.feedType\>\u003c/data:f.feedType\>)\u003c/a\> =
\u003c/b:loop\> \u003c/div\>'}, 'status-message': {'varName': '', =
'template': '\u003cb:if cond\u003d\'data:navMessage\'\> \u003cdiv =
class\u003d\'status-msg-wrap\'\> \u003cdiv =
class\u003d\'status-msg-body\'\> =
\u003cdata:navMessage\>\u003c/data:navMessage\> \u003c/div\> \u003cdiv =
class\u003d\'status-msg-border\'\> \u003cdiv =
class\u003d\'status-msg-bg\'\> \u003cdiv =
class\u003d\'status-msg-hidden\'\>\u003cdata:navMessage\>\u003c/data:navM=
essage\>\u003c/div\> \u003c/div\> \u003c/div\> \u003c/div\> \u003cdiv =
style\u003d\'clear: both;\'\>\u003c/div\> \u003c/b:if\>'}}, =
document.getElementById('Blog1'), {'showBacklinks': true, 'postId': =
'8652723838241301555'}, 'displayModeFull'));=0A=
_WidgetManager._RegisterWidget('_HeaderView', new _WidgetInfo('Header1', =
 'header',{'main': {'varName': '', 'template': '\u003cdiv =
class\u003d\'titlewrapper\'\> \u003ch1 class\u003d\'title\'\> \u003cb:if =
cond\u003d\'data:blog.url \u003d\u003d data:blog.homepageUrl\'\> =
\u003cdata:title\>\u003c/data:title\> \u003cb:else\>\u003c/b:else\> =
\u003ca =
expr:href\u003d\'data:blog.homepageUrl\'\>\u003cdata:title\>\u003c/data:t=
itle\>\u003c/a\> \u003c/b:if\> \u003c/h1\> \u003c/div\> \u003cdiv =
class\u003d\'descriptionwrapper\'\> \u003cp =
class\u003d\'description\'\>\u003cspan\>\u003cdata:description\>\u003c/da=
ta:description\>\u003c/span\>\u003c/p\> \u003c/div\>'}}, =
document.getElementById('Header1'), {}, 'displayModeFull'));=0A=
_WidgetManager._RegisterWidget('_NavbarView', new _WidgetInfo('Navbar1', =
 'navbar',{'main': {'varName': '', 'template': '&lt;iframe =
src\u003d&quot;http://www2.blogger.com/navbar.g?targetBlogID\u003d2381670=
6&amp;amp;blogName\u003dIllinois+Issues+blog&amp;amp;publishMode\u003dPUB=
LISH_MODE_BLOGSPOT&amp;amp;navbarType\u003dBLUE&amp;amp;layoutType\u003dL=
AYOUTS&amp;amp;homepageUrl\u003dhttp%3A%2F%2Fillinoisissuesblog.blogspot.=
com%2Findex.html&amp;amp;searchRoot\u003dhttp%3A%2F%2Fillinoisissuesblog.=
blogspot.com%2Fsearch&quot; height\u003d&quot;30px&quot; =
width\u003d&quot;100%&quot; marginwidth\u003d&quot;0&quot; =
marginheight\u003d&quot;0&quot; scrolling\u003d&quot;no&quot; =
id\u003d&quot;navbar-iframe&quot; =
frameborder\u003d&quot;0&quot;&gt;&lt;/iframe&gt; &lt;div =
id\u003d&quot;space-for-ie&quot;&gt;&lt;/div&gt;'}}, =
document.getElementById('Navbar1'), {}, 'displayModeFull'));=0A=
</SCRIPT>
</BODY></HTML>

------=_NextPart_001_0015_01C76C7E.1EF21850
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www2.blogger.com/navbar.g?targetBlogID=23816706&blogName=Illinois+Issues+blog&publishMode=PUBLISH_MODE_BLOGSPOT&navbarType=BLUE&layoutType=LAYOUTS&homepageUrl=http%3A%2F%2Fillinoisissuesblog.blogspot.com%2Findex.html&searchRoot=http%3A%2F%2Fillinoisissuesblog.blogspot.com%2Fsearch

=EF=BB=BF<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Dutf-8"><LINK=20
href=3D"http://www2.blogger.com/css/navbar/navbar.css?v=3D1" =
type=3Dtext/css=20
rel=3Dstylesheet><LINK =
href=3D"http://www2.blogger.com/css/navbar/1.css?v=3D1"=20
type=3Dtext/css rel=3Dstylesheet>
<META content=3D"MSHTML 6.00.2900.3059" name=3DGENERATOR></HEAD>
<BODY>
<SCRIPT src=3D"http://www2.blogger.com/js/cookies.common.js"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT src=3D"http://www2.blogger.com/app/scripts/common.js"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT src=3D"http://www2.blogger.com/app/scripts/dom.common.js"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT type=3Dtext/javascript><!--=0A=
=0A=
=0A=
=0A=
 var ID =3D "23816706";=0A=
 var FLAG_COOKIE_NAME =3D 'flaggedBlog';=0A=
 var MAX_FLAGGED_BLOGS =3D 10;=0A=
 var FLAG_BLOG_URL =3D "http://www2.blogger.com" +=0A=
                     "/flag-blog.g?nav=3D" +=0A=
                     "1" +=0A=
                     "&toFlag=3D" + ID;=0A=
 var UNFLAG_BLOG_URL =3D "http://www2.blogger.com" +=0A=
                     "/unflag-blog.g?nav=3D" +=0A=
                     "1" +=0A=
                     "&toFlag=3D" + ID;=0A=
 var FLAG_IMAGE_URL =3D "http://www2.blogger.com" + "/img/navbar/" +=0A=
                      "1" + "/flag.gif";=0A=
 var UNFLAG_IMAGE_URL =3D "http://www2.blogger.com" + =0A=
                         "/img/navbar/1/unflag.gif";=0A=
   =0A=
 var ncHasFlagged =3D false;=0A=
 var servletTarget =3D new Image();=0A=
=0A=
=0A=
function hasFlagged() {=0A=
  if (getCookie(FLAG_COOKIE_NAME)) {=0A=
    var bloglist =3D getCookie(FLAG_COOKIE_NAME);=0A=
    var blogarray =3D bloglist.split(",")=0A=
    if (FindInArray(blogarray, ID) > 0) {=0A=
      return true;=0A=
    }=0A=
  }=0A=
  return ncHasFlagged;=0A=
}=0A=
=0A=
=0A=
function toggleFlag() {=0A=
  var date =3D new Date();=0A=
  if (hasFlagged()) {=0A=
    removeBlogFromFlagCookie();=0A=
    servletTarget.src =3D UNFLAG_BLOG_URL + '&d=3D' + date.getTime();=0A=
    document.getElementById('bt-flag').style.background =3D =0A=
      'url(' + FLAG_IMAGE_URL + ') left no-repeat';=0A=
    ncHasFlagged =3D false;=0A=
    document.getElementById('bt-unflag-body').style.display =3D 'none';=0A=
    document.getElementById('bt-flag-body').style.display =3D 'inline'=0A=
    refreshDrop();=0A=
  } else { =0A=
    setBloggerFlagCookie();=0A=
    servletTarget.src =3D FLAG_BLOG_URL + '&d=3D' + date.getTime();=0A=
    document.getElementById('bt-flag').style.background =3D =0A=
      'url(' + UNFLAG_IMAGE_URL + ') left no-repeat';=0A=
    ncHasFlagged =3D true;=0A=
    document.getElementById('bt-flag-body').style.display =3D 'none'=0A=
    document.getElementById('bt-unflag-body').style.display =3D 'inline'=0A=
    refreshDrop();=0A=
  }=0A=
}=0A=
=0A=
=0A=
function showDrop() {=0A=
 var overlap =3D 5;=0A=
 var dropdown_position =3D =0A=
   GetPageOffsetRight(document.getElementById('b-flag-this')) - overlap =
+ "px";=0A=
=0A=
 document.getElementById('unflagi').style.display =3D 'none';=0A=
 document.getElementById('flagi').style.display =3D 'none';=0A=
=0A=
 if (!hasFlagged()) { =0A=
    document.getElementById('flagi').style.display =3D 'inline';=0A=
    document.getElementById('flagi').style.left =3D dropdown_position;=0A=
    showElement(document.getElementById('flagi'));     =0A=
  } else { =0A=
    document.getElementById('unflagi').style.display =3D 'inline';=0A=
    document.getElementById('unflagi').style.left =3D dropdown_position;=0A=
    showElement(document.getElementById('unflagi')); =0A=
  }   =0A=
}=0A=
=0A=
=0A=
function hideDrop() {=0A=
    hideElement(document.getElementById('flagi'));=0A=
    hideElement(document.getElementById('unflagi')); =0A=
}=0A=
=0A=
=0A=
function refreshDrop() {=0A=
  hideDrop();=0A=
  showDrop();=0A=
}=0A=
=0A=
=0A=
function setBloggerFlagCookie() {=0A=
  var bloglist =3D ""=0A=
  if (getCookie(FLAG_COOKIE_NAME)) {=0A=
    bloglist =3D getCookie(FLAG_COOKIE_NAME)=0A=
    var blogarray =3D bloglist.split(",")=0A=
    if (blogarray.length >=3D MAX_FLAGGED_BLOGS) { =0A=
      blogarray.shift()  =0A=
    }=0A=
    InsertArray(blogarray, ID)=0A=
    bloglist =3D blogarray.toString(); =0A=
  } else {=0A=
    bloglist =3D ID=0A=
  } =0A=
  setCookie(FLAG_COOKIE_NAME, bloglist, null, null, '/', null)=0A=
 }   =0A=
=0A=
 =0A=
function removeBlogFromFlagCookie(){=0A=
  if (getCookie(FLAG_COOKIE_NAME)) {=0A=
    var bloglist =3D getCookie(FLAG_COOKIE_NAME);=0A=
    var blogarray =3D bloglist.split(",") =0A=
    if (FindInArray(blogarray, ID) > 0) {=0A=
      DeleteArrayElement(blogarray, ID)=0A=
      bloglist =3D blogarray.toString();=0A=
    }=0A=
    setCookie(FLAG_COOKIE_NAME, bloglist, null, null, '/', null);=0A=
  } =0A=
}=0A=
=0A=
=0A=
//--> </SCRIPT>

<DIV id=3Dflagi onmouseover=3DshowDrop() style=3D"POSITION: absolute"=20
onmouseout=3DhideDrop();>
<DIV id=3Dflagi-body>Notify Blogger about <A=20
href=3D"http://help.blogger.com/bin/answer.py?answer=3D1200"=20
target=3D_blank>objectionable content</A> on this page. </DIV></DIV>
<DIV id=3Dunflagi onmouseover=3DshowDrop() style=3D"POSITION: absolute"=20
onmouseout=3DhideDrop()>
<DIV id=3Dunflagi-body>You flagged this blog as having <A=20
href=3D"http://help.blogger.com/bin/answer.py?answer=3D1200"=20
target=3D_blank>objectionable content</A>. </DIV></DIV>
<DIV id=3Db-navbar><A id=3Db-logo title=3D"Go to Blogger.com"=20
href=3D"http://www2.blogger.com/">
<DIV id=3Dnavbar-logo></DIV></A>
<DIV class=3Db-mobile id=3Db-sms><A=20
href=3D"sms:?body=3DHi%2C%20check%20out%20Illinois%20Issues%20blog%20at%2=
0http%3A%2F%2Fillinoisissuesblog.blogspot.com%2Findex.html">Send=20
As SMS </A></DIV>
<DIV id=3Db-search>
<TABLE cellSpacing=3D0 cellPadding=3D0>
  <TBODY>
  <TR>
    <TD class=3Dnavsearch vAlign=3Dcenter noWrap>
      <FORM id=3Dsearchthis style=3D"DISPLAY: inline"=20
      action=3Dhttp://illinoisissuesblog.blogspot.com/search =
method=3Dget>
      <TABLE cellSpacing=3D0 cellPadding=3D0>
        <TBODY>
        <TR>
          <TD vAlign=3Dcenter><INPUT id=3Db-query name=3Dq> </TD>
          <TD class=3Dnavbutton vAlign=3Dcenter><NOSCRIPT><INPUT =
id=3Db-searchbtn=20
            title=3D"Search this blog" type=3Dimage alt=3D"Search This =
Blog"=20
            =
src=3D"http://www2.blogger.com/img/navbar/1/btn_search_this.gif">=20
            </NOSCRIPT>
            <SCRIPT type=3Dtext/javascript>document.write(" \u003cdiv =
id\u003d\"b-search-this\" =
onclick\u003d\"document.getElementById(\'searchthis\').submit()\"\> =
\u003cdiv class\u003d\"bt1\"\>&nbsp;\u003c/div\> \u003cdiv =
class\u003d\"bt2\"\> Search Blog \u003c/div\> \u003cdiv =
class\u003d\"bt1\"\>&nbsp;\u003c/div\> \u003c/div\> ");</SCRIPT>
          </TD>
          <TD class=3Dnavbutton vAlign=3Dcenter>
            <SCRIPT type=3Dtext/javascript>document.write(" \u003cdiv =
onclick\u003d\"toggleFlag();\" id\u003d\"b-flag-this\" =
onmouseout\u003d\"hideDrop()\" onmouseover\u003d\"showDrop()\"\> =
\u003cdiv class\u003d\"bt1\"\>&nbsp;\u003c/div\> \u003cdiv =
class\u003d\"bt2\"\>  \u003cdiv id\u003d\"bt-flag\"\> \u003cdiv =
id\u003d\"bt-flag-body\"\> Flag Blog \u003c/div\> \u003cdiv =
style\u003d\"display:none\" id\u003d\"bt-unflag-body\"\> Blog Flagged =
\u003c/div\> \u003c/div\>  \u003c/div\> \u003cdiv =
class\u003d\"bt1\"\>&nbsp;\u003c/div\> \u003c/div\> ");</SCRIPT>
          </TD></TR></TBODY></TABLE></FORM></TD>
    <TD vAlign=3Dcenter noWrap width=3D"100%"><A id=3Db-next=20
      =
href=3D"http://www.blogger.com/redirect/next_blog.pyra?navBar=3Dtrue">Nex=
t=20
      Blog=C2=BB </A></TD>
    <TD class=3Dnavbar-right vAlign=3Dcenter noWrap align=3Dright><A =
id=3Db-getorpost=20
      href=3D"http://www2.blogger.com/signup.g">Create Blog </A>| <A=20
      href=3D"http://www2.blogger.com/">Sign In=20
</A></TD></TR></TBODY></TABLE></DIV></DIV></BODY></HTML>

------=_NextPart_001_0015_01C76C7E.1EF21850--

------=_NextPart_000_0000_01C76C7E.1EED5D60
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www2.blogger.com/widgets/2097585883-widgets.js

var w_Da=3Dthis;String.prototype.dc=3Dfunction(a){return =
this.indexOf(a)=3D=3D0};String.prototype.bc=3Dfunction(a){var =
b=3Dthis.length-a.length;return =
b>=3D0&&this.lastIndexOf(a,b)=3D=3Db};String.prototype.trim=3Dfunction(){=
return =
this.replace(/^\s+|\s+$/g,"")};String.prototype.subs=3Dfunction(){var =
a=3Dthis;for(var =
b=3D0;b<arguments.length;b++){a=3Da.replace(/\%s/,String(arguments[b]))}r=
eturn =
a};if(!Function.prototype.apply){Function.prototype.apply=3Dfunction(a,b)=
{var c=3D[],d,e;if(!a)a=3Dw_Da;var f=3Db||[];for(var =
g=3D0;g<f.length;g++){c[g]=3D=0A=
"args["+g+"]"}e=3D"oScope.__applyTemp__.peek()("+c.join(",")+");";if(!a._=
_applyTemp__){a.__applyTemp__=3D[]}a.__applyTemp__.push(this);d=3Deval(e)=
;a.__applyTemp__.pop();return =
d}}if(!Array.prototype.push){Array.prototype.push=3Dfunction(a){for(var =
b=3D0;b<arguments.length;b++){this[this.length]=3Darguments[b]}return =
this.length}}if(!Array.prototype.pop){Array.prototype.pop=3Dfunction(){if=
(!this.length){return}var a=3Dthis[this.length-1];this.length--;return =
a}}Array.prototype.peek=3Dfunction(){return this[this.length-=0A=
1]};if(!Array.prototype.shift){Array.prototype.shift=3Dfunction(){if(this=
.length=3D=3D0){return}var a=3Dthis[0];for(var =
b=3D0;b<this.length-1;b++){this[b]=3Dthis[b+1]}this.length--;return =
a}}if(!Array.prototype.unshift){Array.prototype.unshift=3Dfunction(a){var=
 b=3Darguments.length;for(var =
c=3Dthis.length-1;c>=3D0;c--){this[c+b]=3Dthis[c]}for(var =
d=3D0;d<b;d++){this[d]=3Darguments[d]}return =
this.length}}if(!Array.prototype.Nb){Array.prototype.Nb=3Dfunction(a,b){f=
or(var c=3D0;c<this.length;c++){a.call(b,this[c],c,this)}}}function =
w_F(a,=0A=
b){var =
c=3Da.Jb||[];c=3Dc.concat(Array.prototype.slice.call(arguments,2));if(typ=
eof a.Ca!=3D"undefined"){b=3Da.Ca}if(typeof =
a.Ba!=3D"undefined"){a=3Da.Ba}var d=3Dfunction(){var =
e=3Dc.concat(Array.prototype.slice.call(arguments));return =
a.apply(b,e)};d.Jb=3Dc;d.Ca=3Db;d.Ba=3Da;return =
d}Function.prototype.bind=3Dfunction(a){return =
w_F.apply(null,[this,a].concat(Array.prototype.slice.call(arguments,1)))}=
;Function.prototype.partial=3Dfunction(){return =
w_F.apply(null,[this,null].concat(Array.prototype.slice.call(arguments)))=
};=0A=
Function.prototype.inherits=3Dfunction(a){var =
b=3Dfunction(){};b.prototype=3Da.prototype;this.ec=3Da.prototype;this.pro=
totype=3Dnew b};Function.prototype.mixin=3Dfunction(a){for(var b in =
a){this.prototype[b]=3Da[b]}if(typeof =
a["toString"]=3D=3D"function"&&a["toString"]!=3Dthis.prototype["toString"=
]){this.prototype.toString=3Da.toString}};function =
w_f(){}w_f.raise=3Dfunction(a){if(typeof Error!=3D"undefined"){throw new =
Error(a||"Assertion Failed");}else{throw =
a;}};w_f.fail=3Dfunction(a){if(a=3D=3D=3Dundefined)a=3D"Assertion =
failed";if(!(w_I=3D=3D=3Dundefined))w_I(a+"\n");w_f.raise(a)};w_f.isTrue=3D=
function(a,b){if(!a){if(b=3D=3D=3Dundefined)b=3D"Assertion =
failed";w_f.fail(b)}};w_f.equals=3Dfunction(a,b,c){if(a!=3Db){if(c=3D=3D=3D=
undefined){c=3D"AS_Assert.equals failed: <"+a+"> !=3D =
<"+b+">"}w_f.fail(c)}};w_f.typeOf=3Dfunction(a,b,c){if(typeof =
a=3D=3Db)return;if(a||a=3D=3D""){try{if(b=3D=3D=0A=
w_f.TYPE_MAP[typeof a]||a instanceof =
b){return}}catch(d){}}if(c=3D=3D=3Dundefined){if(typeof =
b=3D=3D"function"){var =
e=3Db.toString().match(/^\s*function\s+([^\s\{]+)/);if(e)b=3De[1]}c=3D"AS=
_Assert.typeOf failed: <"+a+"> not typeof =
"+b}w_f.fail(c)};w_f.TYPE_MAP=3D{string:String,number:Number,"boolean":Bo=
olean};w_f.numArgs=3Dfunction(a,b){var =
c=3Dw_f.numArgs.caller;if(c&&c.arguments.length!=3Da){if(b=3D=3D=3Dundefi=
ned){b=3Dc.name+" expected "+a+" arguments  but received =
"+c.arguments.length}w_f.fail(b)}};var w_W=3Dfalse;function =
w_I(a){try{throw a;}catch(b){w_X(b)}}function w_X(a,b){var =
c=3D"Javascript exception: "+(b?b:"")+" "+a;if(w_T()){c+=3D" "+a.name+": =
"+a.message+" ("+a.number+")"}var d=3D"";if(typeof =
a=3D=3D"string"){d=3Da+"\n"}else{for(var e in a){try{d+=3De+": =
"+a[e]+"\n"}catch(f){}}}d+=3Dw_U(w_X.caller);w_da(c+"\n"+d,1)}var =
w_Ca=3D/function (\w+)/;function w_ba(a){var =
b=3Dw_Ca.exec(String(a));if(b){return b[1]}return""}function =
w_U(a){try{if(!w_T()&&!(w_H("safari")||w_H("konqueror"))&&w_H("mozilla"))=
{return Error().stack}if(!a)return"";=0A=
var b=3D"- "+w_ba(a)+"(";for(var =
c=3D0;c<a.arguments.length;c++){if(c>0)b+=3D", ";var =
d=3DString(a.arguments[c]);if(d.length>40){d=3Dd.substr(0,40)+"..."}b+=3D=
d}b+=3D")\n";b+=3Dw_U(a.caller);return b}catch(e){return"[Cannot get =
stack trace]: "+e+"\n"}}var w_ea;var w_v=3Dnull,w_O=3Dfalse;function =
w_ca(){if((w_v=3D=3Dnull||w_v.closed)&&!w_O){try{w_O=3Dtrue;w_v=3Dwindow.=
open("","debug","width=3D700,height=3D500,toolbar=3Dno,resizable=3Dyes,sc=
rollbars=3Dyes,left=3D16,top=3D16,screenx=3D16,screeny=3D16");w_v.blur();=
w_v.document.open();w_O=3Dfalse;var a=3D=0A=
"<font color=3D#ff0000><b>To turn off this debugging window,hit 'D' =
inside the main caribou window, then close this =
window.</b></font><br>";w_V(a)}catch(b){}}}function =
w_da(a,b){if(!w_W){if(typeof =
w_j!=3D"undefined"){w_j(w__(a))}return}try{var c=3D(new =
Date).getTime()-w_ea,d=3D"["+c+"] =
"+w__(a).replace(/\n/g,"<br>")+"<br>";if(b=3D=3D1){d=3D"<font =
color=3D#ff0000><b>Error: =
"+d+"</b></font>";w_v.focus()}}catch(e){}w_V(d)}function =
w_V(a){if(!w_W){return}try{w_ca();w_v.document.write(a);w_v.scrollTo(0,10=
00000)}catch(b){}}=0A=
;function w_H(a){if(a in w_N){return w_N[a]}return =
w_N[a]=3Dnavigator.userAgent.toLowerCase().indexOf(a)!=3D-1}var =
w_N=3D{};function w_T(){return w_H("msie")&&!window.opera}function =
w_Ia(a){if(typeof Error!=3D"undefined"){throw new Error(a||"Assertion =
Failed");}else{throw a;}}function =
w_ka(a){if(a=3D=3D=3Dundefined)a=3D"Assertion failed";if(typeof =
w_I!=3D"undefined")w_I(a+"\n");w_Ia(a)}function =
w_G(a,b){if(!a){if(b=3D=3D=3Dundefined)b=3D"Assertion =
failed";w_ka(b)}};function =
w_5(a,b){a.style.display=3Db?"":"none"}function w_qa(a,=0A=
b){a.style.display=3Db?"block":"none"}function =
w_ra(a,b){a.style.display=3Db?"inline":"none"}function =
w_k(a,b){if(a=3D=3Dnull||a.className=3D=3Dnull)return =
false;if(a.className=3D=3Db){return true}var c=3Da.className.split(" =
");for(var d=3D0;d<c.length;d++){if(c[d]=3D=3Db){return true}}return =
false}function w_q(a,b){if(w_k(a,b))return;a.className+=3D" "+b}function =
w_t(a,b){if(a.className=3D=3Dnull)return;if(a.className=3D=3Db){a.classNa=
me=3D"";return}var c=3Da.className.split(" "),d=3D[],e=3Dfalse;for(var =
f=3D0;f<c.length;f++){if(c[f]!=3Db){if(c[f]){d.push(c[f])}}else{e=3D=0A=
true}}if(e){a.className=3Dd.join(" ")}}function w_Q(a,b){var =
c=3D[];for(var d=3Da.firstChild;d;d=3Dd.nextSibling){w_S(d,b,c)}return =
c}function w_S(a,b,c){if(b.select(a)){c.push(a)}for(var =
d=3Da.firstChild;d;d=3Dd.nextSibling){w_S(d,b,c)}}var =
w_ya=3D/&/g,w_Ga=3D/</g,w_Fa=3D/>/g;function =
w__(a){if(!a)return"";return =
a.replace(w_ya,"&amp;").replace(w_Ga,"&lt;").replace(w_Fa,"&gt;").replace=
(w_Ha,"&quot;")}var w_Ha=3D/\"/g;function w_Aa(a){return =
document.getElementById(a)}function w_Ba(a){return document.all[a]}var =
w_za=3D=0A=
document.getElementById?w_Aa:w_Ba;function =
w_j(a){try{if(window.parent!=3Dwindow&&window.parent.log){window.parent.l=
og(window.name+"::"+a);return}}catch(b){}var c=3Dw_za("log");if(c){var =
d=3D"<p class=3Dlogentry><span class=3Dlogdate>"+new Date+"</span><span =
class=3Dlogmsg>"+a+"</span></p>";c.innerHTML=3Dd+c.innerHTML}else{window.=
status=3Da}};var w_M;function w_va(){var =
a=3D["MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.5.0","MSXML2.XMLHTTP.4.0","MSXM=
L2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"];if(typeof =
XMLHttpRequest=3D=3D"undefined"&&typeof =
ActiveXObject!=3D"undefined"){for(var b=3D0;b<a.length;b++){var =
c=3Da[b];try{new =
ActiveXObject(c);w_M=3Dc;break}catch(d){}}if(!w_M){throw Error("Could =
not create ActiveXObject. ActiveX might be disabled, or MSXML might not =
be installed.");}}}w_va();function w_ua(){if(w_M){return new =
ActiveXObject(w_M)}else{return new XMLHttpRequest}}=0A=
function =
w_wa(a,b,c,d){a.onreadystatechange=3Dd;a.open("POST",b,true);a.setRequest=
Header("Content-Type","application/x-www-form-urlencoded");a.setRequestHe=
ader("Content-Length",c.length);w_xa(a,c)}function =
w_xa(a,b){try{a.send(b)}catch(c){w_j("XMLHttpSend failed =
"+c.toString()+"<br>"+c.stack);throw c;}};var =
w_Ea=3D0,w_R=3D0;if("undefined"=3D=3Dtypeof =
w_j){w_j=3Dfunction(){}}function w_la(a){var =
b=3D-1;try{b=3Da.status}catch(c){}return b}function w_ma(a){var =
b=3Dnull;try{b=3Da.statusText}catch(c){}return b}function =
w_na(a,b,c,d){if(a.readyState=3D=3D4){try{var =
e=3Dtrue;if(d){try{e=3D!(false=3D=3D=3Dd(a))}catch(f){w_j("Message =
("+b+") handling failed: "+f);throw f;}}var =
g=3Dw_la(a);if(200=3D=3D=3Dg){w_j("Message ("+b+") received after =
"+((new Date).getTime()-c)+" ms");try{var h=3D(new =
Date).getTime();if(e&&a.responseText.length){eval(a.responseText)}w_j("Me=
ssage ("+=0A=
b+") processing took "+((new Date).getTime()-h)+" =
ms")}catch(f){w_j("Message ("+b+") processing failed: =
"+f);alert(f+"\n"+f.stack+"\n\n"+a.responseText);throw f;}}else =
if(204=3D=3Dg){w_j("Message ("+b+") received after "+((new =
Date).getTime()-c)+" ms")}else{w_j("Message ("+b+") failed with response =
"+g+" "+w_ma(a)+" after "+((new Date).getTime()-c)+" =
ms.")}}finally{--w_R}}}function w_oa(a,b,c){var d=3D"";if(b){var =
e=3D"";for(var f=3D0;f<b.length;){var =
g=3Db[f++],h=3Db[f++];d+=3De+encodeURIComponent(g);e=3D"&";if(null!=3D=3D=0A=
h&&undefined!=3D=3Dh){d+=3D"=3D"+encodeURIComponent(h.toString())}}}var =
i=3D++w_Ea,j=3Dw_ua(),l=3D(new =
Date).getTime(),k=3Dfunction(){w_na(j,i,l,c)},m=3Da;for(var =
n=3Dm.length+1;(n=3Dm.lastIndexOf("&",n-1))>=3D0;){m=3Dm.substring(0,n)+"=
&amp;"+m.substring(n+1)}w_j("Message ("+i+") sent: POST =
<tt>"+m+"</tt>.");++w_R;w_wa(j,a,d,k)};function =
w_i(a,b,c,d,e,f){this.instanceId=3Da;this.sectionId=3Db;this.markups=3Dc;=
if(d){this.rootElement=3Dd}if(e){this.data=3De}if(f){this.m=3Df;if(!w_i.I=
sValidDisplayMode(f)){throw"bad display mode: =
"+f;}}else{this.m=3Dw_i.DISPLAY_MODE_NONE}this.isNew=3Dfalse}w_i.IsValidD=
isplayMode=3Dfunction(a){return =
a=3D=3Dw_i.DISPLAY_MODE_SNIPPET||a=3D=3Dw_i.DISPLAY_MODE_FULL||a=3D=3Dw_i=
.DISPLAY_MODE_LAYOUT||a=3D=3Dw_i.DISPLAY_MODE_NONE};w_i.DISPLAY_MODE_FULL=
=3D"displayModeFull";w_i.DISPLAY_MODE_SNIPPET=3D"displayModeSnippet";w_i.=
DISPLAY_MODE_LAYOUT=3D=0A=
"displayModeLayout";w_i.DISPLAY_MODE_NONE=3D"displayModeNone";function =
w_b(a){this.P=3Dtrue;this.X=3Dnew =
w_u(this);this.b=3Da;this.q=3Dnull}w_b.DATA_NAMESPACE_PREFIX=3D"data";w_b=
.ACTION_NAMESPACE_PREFIX=3D"b";w_b.INTERPRET_ATTR_NAMESPACE_PREFIX=3D"exp=
r";w_b.prototype.Qa=3Dfunction(){var =
a=3Dthis.b.rootElement;a.innerHTML=3D"";if(this.B()=3D=3Dw_i.DISPLAY_MODE=
_LAYOUT){a.appendChild(this.M("layout"))}else{a.appendChild(this.M("main"=
))}return =
a};w_b.prototype.Ab=3Dfunction(a){this.q=3Da};w_b.prototype.g=3Dfunction(=
){return this.b};=0A=
w_b.prototype.j=3Dfunction(a){return =
document.getElementById(this.b.instanceId+"_"+a)};w_b.prototype.L=3Dfunct=
ion(a){var b=3Dthis.j(a);if(!b){throw"did not find element for id =
"+a;}return b};w_b.prototype.i=3Dfunction(){return =
this.b["data"]};w_b.prototype.wa=3Dfunction(a){return =
this.b.data=3Da};w_b.prototype.hb=3Dfunction(){return =
this.b["isNew"]};w_b.prototype.wb=3Dfunction(a){return =
this.b.isNew=3Da};w_b.prototype.M=3Dfunction(a,b){var =
c=3Db;if(!c){c=3Dthis.i()}if(!c){c=3D{}}var d=3Dnew =
w_h;d.z("widget",this.Xa());d.La(c);=0A=
var e=3Dthis.ka(a,d,w_h.DEFAULT_DICTIONARY_KEY);return =
this.ja(e,document)};w_b.prototype.Xa=3Dfunction(){var =
a=3D{};a["type"]=3Dthis.q.e();a["instanceId"]=3Dthis.b.instanceId;a["sect=
ionId"]=3Dthis.b.sectionId;a["actionUrl"]=3Dw_.O;var =
b=3Dw_.Da+"&widgetType=3D"+this.q.e()+"&widgetId=3D"+this.b.instanceId+"&=
action=3D"+w_.EDIT_WIDGET_ACTION;a["quickEditUrl"]=3Db;return =
a};w_b.prototype.ka=3Dfunction(a,b,c){var =
d=3Dthis.ab(a);w_f.isTrue(d!=3Dnull,"Markup chunk not found for "+a);var =
e=3Dd.varName?d.varName:"",f=3Db.i(c);w_f.isTrue(f!=3D=0A=
null,"No data found for call: "+c);b.z(e,f);var =
g=3Dthis.D(d.rootNode,b);b.ra(e);return =
g};w_b.prototype.D=3Dfunction(a,b){w_f.isTrue(a!=3Dnull,"Null node");var =
c=3Da;if(a.attributes){var d=3D[],e=3D[];for(var =
f=3D0;f<a.attributes.length;f++){var =
g=3Da.attributes.item(f),h=3Dthis.mb(g,b);if(g!=3Dh){e[e.length]=3Dg.node=
Name;d[d.length]=3Dh}}for(var =
f=3D0;f<e.length;f++){a.attributes.removeNamedItem(e[f])}for(var =
f=3D0;f<d.length;f++){a.attributes.setNamedItem(d[f])}}if(a.nodeType=3D=3D=
1){if(a.prefix=3D=3Dw_b.ACTION_NAMESPACE_PREFIX){c=3D=0A=
this.eb(a,b)}else =
if(a.prefix=3D=3Dw_b.DATA_NAMESPACE_PREFIX){c=3Dthis.db(a,b)}}if(a.hasChi=
ldNodes()){var =
i=3Da.ownerDocument.createDocumentFragment();while(a.hasChildNodes()){var=
 =
j=3Da.firstChild,l=3Dthis.D(j,b);i.appendChild(l);if(j!=3Dl){a.removeChil=
d(j)}}c.appendChild(i)}return =
c};w_b.prototype.mb=3Dfunction(a,b){if(a.prefix=3D=3Dw_b.INTERPRET_ATTR_N=
AMESPACE_PREFIX){var =
c=3Da.ownerDocument.createAttribute(a.localName||a.baseName),d=3Dthis.X.d=
a(a.nodeValue,b);c.nodeValue=3Dd;return c}return =
a};w_b.prototype.eb=3Dfunction(a,=0A=
b){var c=3Da.localName||a.baseName,d=3Dthis.ta(c,a,b);return =
this.Ib(d)};w_b.prototype.Ib=3Dfunction(a){var b=3Da;if(!a){return =
document.createDocumentFragment()}if(!a.nodeType){b=3Ddocument.createText=
Node(a)}if(b.nodeType=3D=3D3){var =
c=3Ddocument.createDocumentFragment();c.appendChild(b);b=3Dc}return =
b};w_b.prototype.J=3Dfunction(a,b){var c=3Dthis.F(a);return =
b.i(c[1])};w_b.prototype.db=3Dfunction(a,b){w_f.isTrue(a!=3Dnull,"Null =
element");w_f.isTrue(b!=3Dnull,"Null =
data");if(a.prefix!=3Dw_b.DATA_NAMESPACE_PREFIX){return a}var c=3D=0A=
this.J(a.tagName,b),d=3D""+(c=3D=3Dnull?"":c),e=3Ddocument.createElement(=
"span");e.innerHTML=3Dd;var f=3Dthis.C(e);return =
this.ja(f,a.ownerDocument,true)};w_b.prototype.F=3Dfunction(a){var =
b=3Da.split(":",2);if(b.length=3D=3D1){b.unshift("")}b[0]=3Db[0].toLowerC=
ase();return b};w_b.prototype.ta=3Dfunction(a,b,c){var =
d=3D"_WidgetBinding_"+a;if(this.X[d]){return =
this.X[d](b,c)}if(this.q[d]){return =
this.q[d](b,c)}w_f.isTrue(false,"could not find binding "+a);return =
null};w_b.prototype.lb=3Dfunction(a){if(a=3D=3Dnull)return null;var b;=0A=
if(window.ActiveXObject){b=3Dnew =
ActiveXObject("Microsoft.XMLDOM");b.async=3D"false";if(!b.loadXML(a)){thr=
ow new Error(b.parseError);}}else if(window.DOMParser){var c=3Dnew =
DOMParser;b=3Dc.parseFromString(a,"text/xml");if(b.documentElement.nodeNa=
me=3D=3D"parsererror"){throw new =
Error(b.documentElement.textContent);}}else{w_f.raise("Unable to find =
XML parser")}return b.documentElement};w_b.prototype.C=3Dfunction(a){var =
b=3Da.ownerDocument.createDocumentFragment();while(a.hasChildNodes()){b.a=
ppendChild(a.firstChild)}return b};=0A=
w_b.prototype.ja=3Dfunction(a,b,c){w_f.isTrue(a!=3Dnull);if(b.importNode)=
{return b.importNode(a,true)}if(!c){var =
d=3Db.createElement("span"),e=3Da.innerHTML||a.xml;d.innerHTML=3De;return=
 this.C(d)}var f=3Dfunction(g){var =
h;if(g.nodeType=3D=3D1){if(g.nodeName=3D=3D"SCRIPT")return =
document.createTextNode("");h=3Db.createElement(g.nodeName);if(g.style){h=
.setAttribute("style",g.style.cssText)}if(g.currentStyle.height){h.setAtt=
ribute("height",g.currentStyle.height)}if(g.currentStyle.width){h.setAttr=
ibute("width",g.currentStyle.width)}for(var i=3D=0A=
0;i<g.attributes.length;i++){var =
j=3Dg.attributes[i];if(j.value&&j.value!=3D"null"&&j.value!=3D"false"&&j.=
value!=3D"0"){h.setAttribute(j.name,j.value)}}}else =
if(g.nodeType=3D=3D3){h=3Db.createTextNode(g.nodeValue)}else =
if(g.nodeType=3D=3D11){h=3Db.createDocumentFragment()}else{w_f.raise("une=
xpected node type "+g.nodeType)}if(g.hasChildNodes()){for(var =
i=3D0;i<g.childNodes.length;i++){h.appendChild(f(g.childNodes[i]))}}retur=
n h};return f(a)};w_b.prototype.r=3Dfunction(a,b){var =
c=3Dthis.q,d=3Dfunction(e){if(c.ActionCallback)return =
c.ActionCallback(e);=0A=
else return =
true};w_.r(a,b,this.b.instanceId,this.q.e(),d)};w_b.prototype.B=3Dfunctio=
n(){return this.b.m};w_b.prototype.Wb=3Dfunction(){return =
this.P};w_b.prototype.Zb=3Dfunction(a){if(a!=3Dthis.b.m){this.b.m=3Da;thi=
s.P=3Dtrue;w_.DisplayWidget(this.widgetView)}};w_b.prototype.ab=3Dfunctio=
n(a){if(!a)return null;var =
b=3Dw_.W[a];if(!b){b=3Dthis.b.markups[a]}if(!b)return =
null;if(!b.parsedTemplate||!b.parsedTemplate.ownerDocument){this.kb(b)}if=
(!b.parsedTemplate){w_f.raise("Parsing failed for =
"+a)}b.rootNode=3Db.parsedTemplate.cloneNode(true);=0A=
return b};w_b.prototype.kb=3Dfunction(a){if(!a)return null;var =
b=3D"<?xml version=3D'1.0'?><markuproot =
xmlns:"+w_b.DATA_NAMESPACE_PREFIX+"=3D'urn:ns1'  =
xmlns:"+w_b.ACTION_NAMESPACE_PREFIX+"=3D'urn:ns2' =
xmlns:"+w_b.INTERPRET_ATTR_NAMESPACE_PREFIX+"=3D'urn:ns3'  =
xmlns=3D'http://www.w3.org/1999/xhtml'>"+a["template"]+"</markuproot>\n",=
c=3Dthis.lb(b);a.parsedTemplate=3Dthis.C(c);return =
a};w_b.prototype.Vb=3Dfunction(a,b,c){this.Ma(a,this.j(b),c)};w_b.prototy=
pe.Ma=3Dfunction(a,b,c){var d=3Dthis.q;if(b){b[a]=3Dfunction(e){return =
d[c](e)}}};=0A=
w_b.ConfigureWidget=3Dfunction(a,b){if(!b){b=3D"config"}var =
c=3Ddocument.forms[b]["widgetId"].value,d=3Ddocument.forms[b]["widgetType=
"].value,e=3Dw_g.ProcessForm(document.forms[b],a);if(e.success){w_.SaveWi=
dget(e.values,c,d)}};function =
w_(){}w_.Init=3Dfunction(a,b,c){w_.v=3D{};w_.Da=3Da;w_.O=3Db;w_.cc=3Dc;w_=
.Ea=3Dnull;if(!w_.W){w_.W=3D{}}};w_.TrapClicks=3Dfunction(a){var =
b;try{b=3Da.document.getElementsByTagName("A")}catch(c){return}for(var =
d=3D0;d<b.length;d++){b[d].onclick=3Dw_.w}var =
e=3Da.document.getElementsByTagName("FORM");=0A=
for(var d=3D0;d<e.length;d++){e[d].onsubmit=3Dw_.w}for(var =
d=3D0;d<a.frames.length;d++){w_.TrapClicks(a.frames[d])}};w_._SetupPrevie=
w=3Dfunction(){w_.TrapClicks(window)};w_.NEW_WIDGET_WINDOW_NAME=3D"choose=
Widget";w_.CHOOSE_WIDGET_ACTION=3D"chooseWidget";w_.EDIT_WIDGET_ACTION=3D=
"editWidget";w_.GetCallbackUrl=3Dfunction(){return =
w_.O};w_.SetPageActionUrl=3Dfunction(a,b){w_.S=3Da;w_.Rb=3Db};w_.GetPageA=
ctionUrl=3Dfunction(){return =
w_.S};w_.SetWidgetRefreshUrl=3Dfunction(a){w_.Ub=3Da};w_.GetWidgetRefresh=
Url=3Dfunction(){return w_.Ub};=0A=
w_._SetDataContext=3Dfunction(a){w_.Ea=3Da};w_._SetSystemMarkup=3Dfunctio=
n(a){w_.W=3Da};w_._RegisterWidget=3Dfunction(a,b,c){var d=3Dnew =
w_b(b);if(!c)c=3Dwindow[a];var e=3Dnew =
c(d);d.Ab(e);w_.v[b.instanceId]=3De;w_.DisplayWidget(e);return =
e};w_._RegisterNewWidget=3Dfunction(a,b,c){var =
d=3Dw_._RegisterWidget(a,b,c),e=3Dd.c();e.wb(true);return =
d};w_.DisplayWidget=3Dfunction(a,b){var =
c=3Da.c();if(c.B()=3D=3Dw_i.DISPLAY_MODE_NONE){return}if(b||a.k&&a.k()){c=
.Qa()}if(c.B()=3D=3Dw_i.DISPLAY_MODE_FULL){if(a.o){a.o()}}a.c().P=3Dfalse=
};w_.GetWidget=3D=0A=
function(a){if(w_.v){return w_.v[a]}return =
null};w_._PopupPaneFromParams=3Dfunction(a,b,c,d,e){var =
f=3D"";if(d){f=3D"&widgetId=3D"+d}var =
g=3Dw_.Da+"&action=3D"+a+"&sectionId=3D"+b+"&widgetType=3D"+c+f;if(window=
.name=3D=3De){window.location.replace(g);window.focus();return =
window}var =
h=3Dwindow.open(g,e,"width=3D550,height=3D600,left=3D75,top=3D20,resizabl=
e=3Dyes,scrollbars=3Dyes");h.focus();return =
h};w_._PopupConfig=3Dfunction(a){var =
b=3Da.getAttribute("id"),c=3Dw_.GetWidget(b);if(c){var =
d=3Dc.c().configWin;if(d!=3Dnull&&!d.closed){d.focus();=0A=
return false}}var =
e=3D"config"+b,f=3Dw_._PopupPaneFromParams(w_.EDIT_WIDGET_ACTION,a.parent=
Node.getAttribute("id"),a.getAttribute("widgetType"),b,e);if(c){c.c().con=
figWin=3Df}return =
false};w_._PopupToolbox=3Dfunction(a){w_._PopupPaneFromParams(w_.CHOOSE_W=
IDGET_ACTION,a.parentNode.getAttribute("id"),a.getAttribute("widgetType")=
,a.getAttribute("id"),w_.NEW_WIDGET_WINDOW_NAME);return =
false};w_.DeleteWidgetFromPage=3Dfunction(a,b){w_.l(b,b.LayoutsMessages.D=
ELETING,w_.STATUS_MESSAGE_PENDING_CLASS);w_.RunPageAction("delete",=0A=
{},a,b)};w_b.prototype.ub=3Dfunction(a,b){w_.l(b,b.LayoutsMessages.SAVING=
,w_.STATUS_MESSAGE_PENDING_CLASS);this.r("configure",a)};w_.SaveNewWidget=
=3Dfunction(a,b,c){var =
d=3Ddocument.getElementById("sectionId").value;a["sectionid"]=3Dd;w_.l(c,=
c.LayoutsMessages.SAVING,w_.STATUS_MESSAGE_PENDING_CLASS);w_.RunPageActio=
n("addnew",a,"",b)};w_.SaveWidget=3Dfunction(a,b,c){w_G(c!=3Dnull,"no =
type");var d=3D_WidgetManager._GetWidget(b);w_G(d!=3Dnull,"no widget for =
"+b);if(d.c().hb()){w_.SaveNewWidget(a,c,window)}else{d.a.ub(a,=0A=
window)}};w_._RunInitialAction=3Dfunction(a){var =
b=3Dw_._GetWidget(a);if(b){b.c().r("initial")}};w_.r=3Dfunction(a,b,c,d,e=
){w_.RunAction(w_.O,a,b,c,d,e)};w_.RunPageAction=3Dfunction(a,b,c,d,e){if=
(!w_.S){w_j("RunPageAction error: pageActionUrl_ is undefined.  =
widgetid: "+c+" action: =
"+a);return}b["pageToken"]=3Dw_.Rb;w_.RunAction(w_.S,a,b,c,d,e)};w_.RunAc=
tion=3Dfunction(a,b,c,d,e,f){var =
g=3D["action",b,"widgetId",d,"widgetType",e,"responseType","js"];for(var =
h in c){g[g.length]=3Dh;g[g.length]=3Dc[h]}w_oa(a,g,f)};w_.SetConfigWin=3D=0A=
function(a,b){if(!a)return;var =
c=3Dw_.GetWidget(a);if(!c)return;c.c().configWin=3Db};w_.CloseIfNoPending=
Messages=3Dfunction(a,b){if(w_R=3D=3D0){window.setTimeout(function(){a.cl=
ose()},b)}else{window.setTimeout(function(){w_.CloseIfNoPendingMessages(a=
,b)},200)}};w_._KillPopupDelay=3Dfunction(a,b){if(!a)return;w_.CloseIfNoP=
endingMessages(a,100);w_.UpdateEditorStatus(a,b)};w_.UpdateEditorStatus=3D=
function(a,b){if(!a){return}var =
c=3Da.document.getElementById("status-message-inner");if(c){c=3Dc.innerHT=
ML}if(c){if(a&&a.opener.parent&&=0A=
a.opener.parent.editor){a.opener.parent.editor._SetSaveMessage(c,b)}}};w_=
.d=3Dfunction(a,b,c){var d=3Dw_.v[a];if(c["errors"]!=3Dnull){var =
e=3Dd?d.c().configWin:null;if(!e)e=3Dwindow;w_.l(e,c["errors"],w_.STATUS_=
MESSAGE_BAD_CLASS);if(d&&d.HandleControllerFailure){d.HandleControllerFai=
lure(b,c)}else{w_.HandleControllerFailure(c,e)}return}w_G(d!=3Dnull,"no =
widget for =
"+a);if(b=3D=3D"initial"){d.c().wa(c);w_.DisplayWidget(d,true);return}d.d=
(b,c)};w_.HandleControllerFailure=3Dfunction(a,b){var =
c=3Da["error-details"];for(var d in c){w_g.SetError(d,=0A=
c[d],b.document)}};w_b.prototype.f=3Dfunction(a){w_.l(this.configWin,a["s=
tatus-message"],w_.STATUS_MESSAGE_GOOD_CLASS);w_.FinishPopupWork(this.b.i=
nstanceId,"_OnWidgetConfigured",function(b){window.opener._WidgetManager.=
_OnWidgetConfigured(b,a)})};w_._OnWidgetConfigured=3Dfunction(a,b){if(win=
dow.parent&&window.parent.editor&&b){w_.OnWidgetConfiguredWithData(a,b)}e=
lse{w_._RunInitialAction(a)}};w_.OnWidgetConfiguredWithData=3Dfunction(a,=
b){var c=3Dw_._GetWidget(a);c.c().wa(b["data"]);w_.DisplayWidget(c,true);=0A=
c.c().configWin=3Dnull};w_.HandlePageActionResult=3Dfunction(a,b,c){var =
d=3Dc["status-message"];if(c["errors"]!=3Dnull){w_.l(window,c["errors"],w=
_.STATUS_MESSAGE_BAD_CLASS);w_.HandleControllerFailure(c,window);return}i=
f(b=3D=3D"addnew"){var =
e;if(w_.IsOpenerReachable(window)){if(window.opener&&window.opener.parent=
){e=3Dwindow.opener.parent}if(e&&e.editor){e.editor._HandleAddNewWidget(c=
)}}w_.l(window,d,w_.STATUS_MESSAGE_GOOD_CLASS);if(e&&e._WidgetManager){e.=
_WidgetManager._KillPopupDelay(window)}else{w_.CloseIfNoPendingMessages(w=
indow,=0A=
100)}return}var =
f=3Dw_.v[a];w_G(f!=3Dnull);if(b=3D=3D"delete"){w_.l(f.c().configWin,d,w_.=
STATUS_MESSAGE_GOOD_CLASS);w_.FinishPopupWork(a,"_OnWidgetDeleted")}};w_.=
_OnWidgetDeleted=3Dfunction(a){var =
b=3Dw_.GetWidget(a);if(!b){return}if(b.c().B()=3D=3Dw_i.DISPLAY_MODE_LAYO=
UT){top.editor._HandleDeleteWidget(b.c().b.rootElement)}else{var =
c=3Db.c().b.rootElement;c.parentNode.removeChild(c)}delete =
w_.v[a]};w_.FinishPopupWork=3Dfunction(a,b,c){if(w_.IsOpenerReachable(win=
dow)){var d=3Dwindow.opener;if(!c){c=3Dd._WidgetManager[b]}c(a);=0A=
if(d._WidgetManager){d._WidgetManager._KillPopupDelay(window,a)}else{w_.C=
loseIfNoPendingMessages(window,100)}}else{var =
e=3Dw_.GetWidgetRefreshUrl()+"?widgetId=3D"+a;e+=3D"&func=3D"+encodeURICo=
mponent(b);window.location.replace(e)}};w_.IsOpenerReachable=3Dfunction(a=
){var b=3Dfalse;try{if(a.opener){var =
c=3D"X"+a.opener.document.domain;if(c&&c!=3D"X"){b=3Dtrue}}}catch(d){}ret=
urn b};w_.STATUS_MESSAGE_GOOD_CLASS=3D"status-msg =
status-msg-yellow-on-white";w_.STATUS_MESSAGE_PENDING_CLASS=3Dw_.STATUS_M=
ESSAGE_GOOD_CLASS;w_.STATUS_MESSAGE_BAD_CLASS=3D=0A=
w_.STATUS_MESSAGE_GOOD_CLASS;w_.l=3Dfunction(a,b,c){if(!a)a=3Dself;var =
d=3Da.document.getElementById("status-message-inner");if(d){d.innerHTML=3D=
b}var =
e=3Da.document.getElementById("status-message");if(e){e.className=3Dc}};w=
_.MaybePrependHttp=3Dfunction(a){if(a&&a.length>0&&a.substring(0,4)!=3D"h=
ttp"){a=3D"http://"+a}return =
a};w_.GetFirstElementInElementWithClass=3Dfunction(a,b){if(w_k(a,b)){retu=
rn a}if(a){var c=3Da.childNodes.length;for(var d=3D0;d<c;d++){var =
e=3Dw_.GetFirstElementInElementWithClass(a.childNodes.item(d),=0A=
b);if(e){return e}}}return =
null};w_.CreateTransparentClickTrappingDiv=3Dfunction(a){var =
b=3Da.createElement("div"),c=3Da.body.scrollHeight;b.style.position=3D"ab=
solute";b.style.top=3D"0px";b.style.left=3D"0px";b.style.width=3D"100%";b=
.style.height=3Dc+"px";b.style.zIndex=3D"10";b.style.cursor=3D"default";b=
.onclick=3Dw_.w;b.onmousedown=3Dw_.w;b.onmouseup=3Dw_.w;b.style.backgroun=
d=3D"white";b.style.filter=3D"alpha(opacity=3D1)";b.style.opacity=3D".01"=
;b.innerHTML=3D"&nbsp;";return b};w_.w=3Dfunction(a){var =
b=3Da;if(!b){b=3Dwindow.event}if(b){b.cancelBubble=3D=0A=
true;if(b.stopPropagation){b.stopPropagation()}}return false};function =
w_u(a){this.n=3Da}w_u.prototype._WidgetBinding_include=3Dfunction(a,b){va=
r c=3Da.getAttribute("name"),d=3Da.getAttribute("data");return =
this.n.ka(c,b,d)};w_u.prototype._WidgetBinding_call=3Dw_u.prototype._Widg=
etBinding_include;w_u.prototype._WidgetBinding_loop=3Dfunction(a,b){var =
c=3Da.getAttribute("values"),d=3Dthis.n.F(c),e=3Dthis.n.J(d[1],b),f=3Da.g=
etAttribute("var");if(!f){w_f.raise("Invalid var=3D attribute on =
b:loop")}var =
g=3Dthis.n.C(a),h=3Da.ownerDocument.createDocumentFragment();=0A=
if(!e)return h;for(var i=3D0;i<e.length;i++){var =
j=3De[i],l=3Dg.cloneNode(true);b.z(f,j);var =
k=3Dthis.n.D(l,b);b.ra(f);h.appendChild(k)}return =
h};w_u.prototype._WidgetBinding_if=3Dfunction(a,b){var =
c=3Dthis.da(a.getAttribute("cond"),b),d=3Da.ownerDocument.createDocumentF=
ragment(),e=3Dfalse;while(a.firstChild!=3Dnull){var =
f=3Da.firstChild;if("else"=3D=3Dthis.n.F(f.nodeName)[1].toLowerCase()){e=3D=
true}else if(c&&!e||!c&&e){var =
g=3Dthis.n.D(f,b);d.appendChild(g)}if(f.parentNode=3D=3Da){a.removeChild(=
f)}}return d};w_u.prototype.da=3D=0A=
function(a,b){w_f.isTrue(a!=3Dnull,"null expression");var =
c=3Dthis.Db(a,b);try{var d=3Deval(c);return =
d}catch(e){w_j("expression=3D["+a+"] error=3D"+e+" =
eval=3D["+c+"]")}return""};w_u.prototype.Db=3Dfunction(a,b){var c=3Dnew =
RegExp("\\b(?:"+w_b.DATA_NAMESPACE_PREFIX+"|"+w_b.ACTION_NAMESPACE_PREFIX=
+"):[^ ]*\\b","gi"),d=3D"",e=3D0,f=3Dc.exec(a);while(f){var =
g=3Df[0];if(!this.gb(a,c.lastIndex)){var =
h,i=3Dthis.n.F(g);if(i[0]=3D=3Dw_b.ACTION_NAMESPACE_PREFIX){h=3Dthis.n.ta=
(i[1],null,b)}else =
if(i[0]=3D=3Dw_b.DATA_NAMESPACE_PREFIX){h=3Dthis.n.J(g,=0A=
b);if(!h)h=3D"";h=3Dh+""}else{w_f.raise("Unrecognized prefix =
'"+i[0]+"'")}h=3Dh.replace(/"/g,"&quot;");h=3D'"'+h+'"';d+=3Da.substring(=
e,f.index);d+=3Dh;e=3Dc.lastIndex}f=3Dc.exec(a)}d+=3Da.substring(e,a.leng=
th);return =
d};w_u.prototype.gb=3Dfunction(a,b){w_f.isTrue(b<=3Da.length,"Invalid =
index: i=3D"+b+", l=3D"+a.length);var c=3D0;for(var =
d=3D0;d<b;d++){if(a.charAt(d)=3D=3D'"'&&(d=3D=3D0||a.charAt(d-1)!=3D"\\")=
){c++}}return c%2!=3D0};function =
w_g(){}w_g.ERROR_MSG_ACTIVE_CLASS=3D"errorbox-bad =
errormsg";w_g.ERROR_MSG_INACTIVE_CLASS=3D"errorbox-good";=0A=
w_g.ProcessForm=3Dfunction(a,b){var =
c=3D{};c.success=3Dtrue;c.values=3D{};c.errors=3D{};for(var d in b){var =
e=3Dw_g.GetFieldValue(a[d]),f=3Db[d];w_g.ClearError(d);if(f){var =
g=3Df(e);if(g){w_g.SetError(d,g);c.success=3Dfalse;c.errors[d]=3Dg}}c.val=
ues[d]=3De}return c};w_g.GetFieldValue=3Dfunction(a){if(!a)return =
undefined;if(a.type=3D=3D"checkbox"){if(a.checked){return a.value}return =
undefined}if(a.type=3D=3Dnull){for(var =
b=3D0;b<a.length;b++){if(a[b].checked)return a[b].value}return =
undefined}return a.value};w_g.ga=3Dfunction(a,b){if(!b)b=3D=0A=
document;var c=3D"errormessage_"+a;return =
b.getElementById(c)};w_g.ClearError=3Dfunction(a){var =
b=3Dw_g.ga(a);if(b){b.innerHTML=3D"";b.className=3Dw_g.ERROR_MSG_INACTIVE=
_CLASS}};w_g.SetError=3Dfunction(a,b,c){var =
d=3Dw_g.ga(a,c);if(d){d.innerHTML=3Db;d.className=3Dw_g.ERROR_MSG_ACTIVE_=
CLASS}};w_g.GetRequiredStringFilter=3Dfunction(){return =
function(a){a=3Da.replace(/^\s+/,"").replace(/\s+$/,"");if(a.length=3D=3D=
0){return LayoutsMessages.FIELD_CANNOT_BE_BLANK}return =
undefined}};w_g.GetNumberFilter=3Dfunction(a,b){return function(c){var d=3D=0A=
parseInt(c,10);if(isNaN(d)){return =
LayoutsMessages.MUST_SPECIFY_A_NUMBER}if(d<a){return =
LayoutsMessages.NUMBER_TOO_SMALL+" "+a}if(d>b){return =
LayoutsMessages.NUMBER_TOO_LARGE+" "+b}return undefined}};function =
w_h(){this.h=3D[];for(var a in =
w_.Ea){this.h[this.h.length]=3Da}}w_h.DEFAULT_DICTIONARY_KEY=3D"";w_h.MAX=
_DICTIONARY_DEPTH=3D50;w_h.SEPARATOR_CHAR=3D".";w_h.prototype.z=3Dfunctio=
n(a,b){if(this.h.length>=3Dw_h.MAX_DICTIONARY_DEPTH){w_f.raise("Cannot =
add another dictionary: "+a)}if(a.indexOf(w_h.SEPARATOR_CHAR)>=0A=
-1){w_f.raise("Cannot add dictionary name containing '.': "+a)}var =
c=3D{};c.name=3Da;c.data=3Db;this.h[this.h.length]=3Dc};w_h.prototype.ra=3D=
function(a){var =
b=3Dthis.h[this.h.length-1];if(b.name!=3Da){w_f.raise("Dictionary "+a+" =
is not the last one, and can't be deleted: =
"+b.name)}this.h.splice(this.h.length-1,1)};w_h.prototype.K=3Dfunction(a)=
{if(a=3D=3Dnull)a=3Dw_h.DEFAULT_DICTIONARY_KEY;for(var =
b=3Dthis.h.length-1;b>=3D0;--b){if(this.h[b].name=3D=3Da){return =
this.h[b].data}}return null};w_h.prototype.fa=3Dfunction(){return =
this.K(w_h.DEFAULT_DICTIONARY_KEY)};=0A=
w_h.prototype.La=3Dfunction(a){this.z(w_h.DEFAULT_DICTIONARY_KEY,a)};w_h.=
prototype.i=3Dfunction(a){var b=3Dthis.K(a);if(b)return b;var =
c=3Da.split(w_h.SEPARATOR_CHAR);if(c.length=3D=3D1){b=3Dthis.fa();return =
b[a]}b=3Dthis.K(c[0]);var d=3D0;if(b){d=3D1}else{b=3Dthis.fa()}for(var =
e=3Dd;e<c.length;e++){if(b=3D=3Dnull)return null;b=3Db[c[e]]}return =
b};function w_sa(){}w_sa.prototype.d=3Dfunction(a,b){throw new =
Error("Unimplemented");};var =
_WidgetManager=3Dw_;_WidgetManager.prototype=3Dw_.prototype;_WidgetManage=
r._Init=3D_WidgetManager.Init;=0A=
_WidgetManager._SetPageActionUrl=3D_WidgetManager.SetPageActionUrl;_Widge=
tManager._GetPageActionUrl=3D_WidgetManager.GetPageActionUrl;_WidgetManag=
er._SetWidgetRefreshUrl=3D_WidgetManager.SetWidgetRefreshUrl;_WidgetManag=
er._GetWidgetRefreshUrl=3D_WidgetManager.GetWidgetRefreshUrl;_WidgetManag=
er._GetCallbackUrl=3D_WidgetManager.GetCallbackUrl;_WidgetManager._Delete=
WidgetFromPage=3D_WidgetManager.DeleteWidgetFromPage;_WidgetManager._Disp=
layWidget=3D_WidgetManager.DisplayWidget;_WidgetManager._GetWidget=3D_Wid=
getManager.GetWidget;=0A=
_WidgetManager._HandleControllerResult=3D_WidgetManager.d;_WidgetManager.=
_HandlePageActionResult=3D_WidgetManager.HandlePageActionResult;_WidgetMa=
nager._IsOpenerReachable=3D_WidgetManager.IsOpenerReachable;_WidgetManage=
r._SetConfigWin=3D_WidgetManager.SetConfigWin;var =
_WidgetInfo=3Dw_i;_WidgetInfo.prototype=3Dw_i.prototype;function =
w_m(a){this.Fa=3Dfalse;this.I=3Da;this.s=3Dwindow.document}w_m.DISABLED_B=
UTTON_CLASS=3D"disabled-button";w_m.HIDDEN_MESSAGE_CLASS=3D"status-msg-hi=
dden";w_m.prototype.ac=3Dfunction(a){this.Fa=3Da;if(a){w_t(this.s.getElem=
entById("save-button-wrapper"),w_m.DISABLED_BUTTON_CLASS)}else{w_q(this.s=
.getElementById("save-button-wrapper"),w_m.DISABLED_BUTTON_CLASS)}};w_m.p=
rototype.Yb=3Dfunction(){return =
this.Fa};w_m.prototype.Y=3Dfunction(){this.s.getElementById(this.I+"-inne=
r").innerHTML=3D"&nbsp;";w_q(this.s.getElementById(this.I),=0A=
w_m.HIDDEN_MESSAGE_CLASS)};w_m.prototype.l=3Dfunction(a){this.s.getElemen=
tById(this.I+"-inner").innerHTML=3Da;w_t(this.s.getElementById(this.I),w_=
m.HIDDEN_MESSAGE_CLASS)};w_m.prototype.$b=3Dfunction(a){this.s=3Da};funct=
ion =
w_B(a){this.a=3Da}w_B.WIDGET_TYPE_NAME=3D"AdSense";w_B.prototype.e=3Dfunc=
tion(){return w_B.WIDGET_TYPE_NAME};w_B.prototype.c=3Dfunction(){return =
this.a};w_B.prototype.d=3Dfunction(a,b){this.a.f(b)};var =
_AdSenseView=3Dw_B;function =
w_d(a){this.a=3Da;this.b=3Da.g()}w_d.WIDGET_TYPE_NAME=3D"BlogArchive";w_d=
.POST_LIST_CLASS=3D"posts";w_d.INTERVAL_EXPANDED_VALUE=3D"expanded";w_d.I=
NTERVAL_COLLAPSED_VALUE=3D"collapsed";w_d.LOADING_MSG=3D"loading...";w_d.=
POST_COUNT_CLASS=3D"post-count";w_d.POST_COUNT_LINK_CLASS=3D"post-count-l=
ink";w_d.MENU_ROOT_ID=3D"ArchiveMenu";w_d.TOGGLE_OPEN_CLASS=3D"toggle-ope=
n";w_d.Kb=3D"&#9660;&nbsp;";w_d.Lb=3D"&#9658;&nbsp;";w_d.prototype.e=3Dfu=
nction(){return =
w_d.WIDGET_TYPE_NAME};w_d.prototype.c=3Dfunction(){return =
this.a};w_d.prototype.k=3D=0A=
function(){return =
false};w_d.prototype.d=3Dfunction(a,b){if(a=3D=3D"configure"){this.a.f(b)=
}else =
if(a=3D=3D"getTitles"){this.Hb(b)}else{this.widgetInfo.data=3Db;w_.Displa=
yWidget(this)}};w_d.prototype.o=3Dfunction(){var =
a=3D{};a.select=3Dfunction(i){return i&&w_k(i,"toggle")};var =
b=3Dthis.a.j("ArchiveList");if(!b)return;var =
c=3Dw_Q(this.b.rootElement,a),d;if(c.length>0&&c[0].currentStyle){d=3Dc[0=
].parentNode.currentStyle.color}for(var e=3D0;e<c.length;e++){var =
f=3Dc[e];f.onclick=3Dthis.Eb.bind(this);if(d)f.style.color=3Dd}var g=3D=0A=
this.a.j(w_d.MENU_ROOT_ID);if(g){for(var =
e=3D1;e<g.options.length;e++){var =
h=3Dg.options[e].value;if(h=3D=3Dwindow.location.href||window.location.hr=
ef.match(h)!=3Dnull){g.selectedIndex=3De;break}}g.onchange=3Dthis.bb.bind=
(this)}};w_d.prototype.bb=3Dfunction(){var =
a=3Dthis.a.j(w_d.MENU_ROOT_ID);if(!a)return;if(a.value=3D=3D"")return;win=
dow.location.href=3Da.value};w_d.prototype.Eb=3Dfunction(a){a=3Da||window=
.event;var =
b=3Da.currentTarget||a.srcElement;if(b&&!w_k(b,"toggle"))b=3Db.parentNode=
;var c=3Dw_.GetFirstElementInElementWithClass(b,=0A=
"zippy"),d=3Db.parentNode;if(w_k(d,w_d.INTERVAL_EXPANDED_VALUE)){w_t(d,w_=
d.INTERVAL_EXPANDED_VALUE);w_q(d,w_d.INTERVAL_COLLAPSED_VALUE);c.innerHTM=
L=3Dw_d.Lb;w_t(c,w_d.TOGGLE_OPEN_CLASS);return =
false}else{w_t(d,w_d.INTERVAL_COLLAPSED_VALUE);w_q(d,w_d.INTERVAL_EXPANDE=
D_VALUE);c.innerHTML=3Dw_d.Kb;w_q(c,w_d.TOGGLE_OPEN_CLASS)}if(this.jb(d))=
{var =
e=3Dthis.ha(d);if(!e){e=3Ddocument.createElement("UL");d.appendChild(e);w=
_q(e,w_d.POST_LIST_CLASS)}e.appendChild(document.createTextNode(w_d.LOADI=
NG_MSG));this.a.r("getTitles",=0A=
{path:this.Za(d)})}return false};w_d.prototype.ha=3Dfunction(a){return =
w_.GetFirstElementInElementWithClass(a,w_d.POST_LIST_CLASS)};w_d.prototyp=
e.Za=3Dfunction(a){var =
b=3Dw_.GetFirstElementInElementWithClass(a,w_d.POST_COUNT_LINK_CLASS);ret=
urn b.href};w_d.prototype.$a=3Dfunction(a){var =
b=3Dw_.GetFirstElementInElementWithClass(a,w_d.POST_COUNT_CLASS);return =
parseInt(b.innerHTML,10)};w_d.prototype.Hb=3Dfunction(a){var =
b=3Da["path"],c=3Dthis.ha(this.Ya(b));c.innerHTML=3D"";for(var =
d=3D0;d<a["posts"].length;d++){var e=3Da["posts"][d],=0A=
f=3Ddocument.createElement("li");f.innerHTML=3D"<a =
href=3D"+e["url"]+">"+e["title"]+"</a>";c.appendChild(f)}};w_d.prototype.=
Ya=3Dfunction(a){var =
b=3Dthis.b.rootElement.getElementsByTagName("A");for(var c in b){var =
d=3Db[c];if(d.href=3D=3Da)return =
d.parentNode}};w_d.prototype.jb=3Dfunction(a){var =
b=3Da.getElementsByTagName("UL");if(b.length>0&&!w_k(b[0],"posts")){retur=
n}var =
c=3Dthis.$a(a),d=3Da.getElementsByTagName("LI"),e=3Dd.length;return =
e<c};var _BlogArchiveView=3Dw_d;function =
w_e(a){this.a=3Da;this.u=3Da.g();if(this.u.data){this.Ha=3Dthis.u.data["s=
howBacklinks"]}}w_e.BACKLINKS_ROOT=3D"backlinks-container";w_e.BACKLINKS_=
CHUNK=3D"backlinks";w_e.BACKLINK_ITEM_ROOT_CLASS=3D"backlink-control";w_e=
.BACKLINK_EXPANDED_CLASS=3D"expanded-backlink";w_e.BACKLINK_COLLAPSED_CLA=
SS=3D"collapsed-backlink";w_e.BACKLINK_ZIPPY_CLASS=3D"backlink-toggle-zip=
py";w_e.WIDGET_TYPE_NAME=3D"Blog";w_e.prototype.e=3Dfunction(){return =
w_e.WIDGET_TYPE_NAME};w_e.prototype.c=3Dfunction(){return =
this.a};w_e.prototype.d=3D=0A=
function(a,b){if(a=3D=3D"initial"){this.u.data=3Db;w_.DisplayWidget(this,=
true)}else if(a=3D=3D"nextposts"){this.Sa(b)}else =
if(a=3D=3D"configure"){this.a.f(b)}else =
if(a=3D=3D"backlinks"){this.Gb(b)}};w_e.prototype.Sa=3Dfunction(a){var =
b=3Da["renderedData"],c=3Dthis.u.rootElement;if(!b||!c){return}c.innerHTM=
L=3Db;window.scroll(0,0);this.o()};w_e.prototype.Gb=3Dfunction(a){this.Ha=
=3Dfalse;var =
b=3Dthis.a.M(w_e.BACKLINKS_CHUNK,a),c=3Dthis.a.j(w_e.BACKLINKS_ROOT);if(c=
){c.innerHTML=3D"";c.appendChild(b)}var =
d=3Dw_Q(this.u.rootElement,w_e.Aa);=0A=
for(var e=3D0;e<d.length;e++){var =
f=3Dd[e];f.onclick=3Dthis.Fb.bind(this)}var =
g=3Dthis.a.j("backlinks-create-link");if(g!=3Dnull){g.onclick=3Dthis.Oa.b=
ind(this,g.href)}};w_e.Aa=3D{};w_e.Aa.select=3Dfunction(a){return =
a&&w_k(a,w_e.BACKLINK_ZIPPY_CLASS)};w_e.prototype.Fb=3Dfunction(a){a=3Da|=
|window.event;this.Ta(a.srcElement||a.target)};w_e.prototype.Ta=3Dfunctio=
n(a){var =
b=3Da.parentNode;while(b&&!w_k(b,w_e.BACKLINK_ITEM_ROOT_CLASS)){b=3Db.par=
entNode}if(!b)return;if(w_k(b,w_e.BACKLINK_EXPANDED_CLASS)){w_t(b,w_e.BAC=
KLINK_EXPANDED_CLASS);=0A=
w_q(b,w_e.BACKLINK_COLLAPSED_CLASS)}else{w_q(b,w_e.BACKLINK_EXPANDED_CLAS=
S);w_t(b,w_e.BACKLINK_COLLAPSED_CLASS)}};w_e.prototype.o=3Dfunction(){var=
 =
a=3Dthis.a.j("blog-pager-newer-link");if(a&&this.la(a)){a.onclick=3Dthis.=
ma.bind(this)}var =
b=3Dthis.a.j("blog-pager-older-link");if(b&&this.la(b)){b.onclick=3Dthis.=
ma.bind(this)}if(this.Ha){this.a.r("backlinks",{postID:this.u.data["postI=
d"]})}};w_e.prototype.la=3Dfunction(a){var b=3Da.href;return =
b.indexOf("/search?")>-1};w_e.prototype.ma=3Dfunction(a){a=3Da||window.ev=
ent;=0A=
var =
b=3Da.target||a.srcElement;this.a.r("nextposts",{path:b.href});return =
false};w_e.prototype.Oa=3Dfunction(a){var =
b=3D"";if(document.selection){b=3Ddocument.selection.createRange().text}e=
lse if(window.getSelection){b=3Dwindow.getSelection()}else =
if(document.getSelection){b=3Ddocument.getSelection()}window.open(a+"?t=3D=
"+encodeURIComponent(b)+"&u=3D"+encodeURIComponent(window.location.href)+=
"&n=3D"+encodeURIComponent(document.title),"bloggerForm","scrollbars=3Dno=
,width=3D475,height=3D300,top=3D175,left=3D75,status=3Dyes,resizable=3Dye=
s");=0A=
return false};var _BlogView=3Dw_e;function =
w_o(a){this.a=3Da;this.b=3Da.g()}w_o.WIDGET_TYPE_NAME=3D"Header";w_o.prot=
otype.e=3Dfunction(){return =
w_o.WIDGET_TYPE_NAME};w_o.prototype.k=3Dfunction(){return =
false};w_o.prototype.c=3Dfunction(){return =
this.a};w_o.prototype.d=3Dfunction(a,b){this.a.f(b)};w_o.FilterMap=3D{tit=
le:w_g.GetRequiredStringFilter(),description:null,securityToken:null};w_o=
.ConfigureWidget=3Dfunction(){w_b.ConfigureWidget(w_o.FilterMap)};var =
_HeaderView=3Dw_o;_HeaderView.prototype=3Dw_o.prototype;_HeaderView._Conf=
igureWidget=3D_HeaderView.ConfigureWidget;function =
w_n(a,b){this.a=3Da;this.b=3Da.g();this.Tb=3Db}w_n.prototype.c=3Dfunction=
(){return this.a};w_n.prototype.e=3Dfunction(){return =
this.Tb};w_n.prototype.d=3Dfunction(a,b){if(a=3D=3D"configure"){this.a.f(=
b)}};w_n.prototype.N=3Dfunction(){return =
this.b.data["content"]&&this.b.data["content"].length>0};w_n.ConfigureWid=
get=3Dfunction(a){setFormAndSubmit();var =
b=3Ddocument.forms.stuffform["widgetId"].value,c=3Ddocument.forms.stufffo=
rm["securityToken"].value,d=3Ddocument.getElementById("hiddenTextarea"),e=
=3Ddocument.getElementById("title"),=0A=
f=3D{content:d.value,title:e.value,securityToken:c};w_.SaveWidget(f,b,a)}=
;function =
w_L(a){w_n.call(this,a,"Text")}w_L.inherits(w_n);w_L.ConfigureWidget=3Dfu=
nction(){w_n.ConfigureWidget("Text")};function =
w_K(a){w_n.call(this,a,"HTML")}w_K.inherits(w_n);w_K.ConfigureWidget=3Dfu=
nction(){w_n.ConfigureWidget("HTML")};var =
_TextView=3Dw_L;_TextView.prototype=3Dw_L.prototype;_TextView._ConfigureW=
idget=3D_TextView.ConfigureWidget;var =
_HTMLView=3Dw_K;_HTMLView.prototype=3Dw_K.prototype;_HTMLView._ConfigureW=
idget=3D_HTMLView.ConfigureWidget;function =
w_s(a){this.a=3Da;this.b=3Da.g()}w_s.WIDGET_TYPE_NAME=3D"Image";w_s.proto=
type.c=3Dfunction(){return this.a};w_s.prototype.e=3Dfunction(){return =
w_s.WIDGET_TYPE_NAME};w_s.prototype.k=3Dfunction(){return =
false};w_s.prototype.o=3Dfunction(){if(this.b.data["resize"]!=3D"true"){r=
eturn}var =
a=3Dthis.a.j(this.b.instanceId+"_img"),b=3Dthis.b.rootElement;if(!a||!b){=
return}var =
c;if(document.defaultView){c=3DparseInt(document.defaultView.getComputedS=
tyle(b,null).width,10)}else =
if(b.currentStyle){a.style.display=3D"none";c=3D=0A=
b.offsetWidth;a.style.display=3D""}else{return}if(a.width>c){a.height=3DM=
ath.round(c/a.width*a.height);a.width=3Dc}a.style.visibility=3D"visible"}=
;w_s.prototype.d=3Dfunction(a,b){if(a=3D=3D"configure"){this.a.f(b)}};w_s=
.prototype.N=3Dfunction(){return =
this.b["data"]["sourceUrl"]&&this.b["data"]["sourceUrl"].length>0};var =
_ImageView=3Dw_s;function w_$(a){document.write('<script src=3D"'+a+'" =
type=3D"text/javascript"><\/script>')}function =
w_aa(a){document.write('<style type=3D"text/css"> @import url( "'+a+'" =
);</style>')}function w_8(a){if(w_7()){w_j("Tried to add an onload after =
page loaded..")}else{var =
b=3Dwindow;if(b.addEventListener){b.addEventListener("load",a,false)}else=
 =
if(b.attachEvent){b.attachEvent("onload",a)}else{b["onload"]=3Da}}}functi=
on w_ta(){window["_UDS_loaded"]=3Dtrue}function w_7(){return =
window["_UDS_loaded"]}function w_z(a){this.a=3D=0A=
a}w_z.WIDGET_TYPE_NAME=3D"VideoBar";w_z.prototype.e=3Dfunction(){return =
w_z.WIDGET_TYPE_NAME};w_z.prototype.c=3Dfunction(){return =
this.a};w_z.prototype.k=3Dfunction(){return =
false};w_z.prototype.d=3Dfunction(a,b){if(a=3D=3D"configure"){this.a.f(b)=
}};w_z.prototype.o=3Dfunction(){if(!window["_UDS_bootstrapped"]){var =
a;if(window.location.host.match(/blogger\.com$/)){a=3D"ABQIAAAAVBJEtyJuLx=
gUs8KlzeA1lRQpkWYODHKIJGlKH8M-8R98XOejsxRkHYkMWejKfPos1RBuAqHID9wA9Q"}els=
e{a=3Dthis.a.i()["key"]}w_$("http://www.google.com/uds/api?file=3Duds.js&=
v=3D1.0&source=3Duds-vbpe&key=3D"+=0A=
a);w_aa("http://www.google.com/uds/css/gsearch.css");w_8(w_ta);window["_U=
DS_bootstrapped"]=3Dtrue}if(!window["_UDS_vb_bootstrapped"]){window._uds_=
vbw_donotrepair=3Dtrue;w_$("http://www.google.com/uds/solutions/videobar/=
gsvideobar.js?mode=3Dnew");w_aa("http://www.google.com/uds/solutions/vide=
obar/gsvideobar.css");window["_UDS_vb_bootstrapped"]=3Dtrue}var =
b=3Ddocument.getElementById("videoBar-player");if(!b){b=3Ddocument.create=
Element("DIV");b.id=3D"videoBar-player";b.innerHTML=3D'<span =
class=3D"videoBar-status">Loading...</span>';=0A=
var =
c=3Ddocument.getElementById("main");if(!c){c=3Ddocument.getElementsByTagN=
ame("body")[0]}c.insertBefore(b,c.firstChild)}var =
d=3Dthis.c();if(!w_7()){w_8(w_9.bind(d))}else{window.setTimeout(w_9.bind(=
d),0)}};function w_9(){var =
a=3Dthis.L("bar"),b=3Dthis.i()["format"],c,d,e=3Dthis.i()["expression"];i=
f(b=3D=3D"VERTICAL"){c=3Dfalse;d=3DGSvideoBar.THUMBNAILS_MEDIUM}else =
if(b=3D=3D"HORIZONTAL-SMALL"){c=3Dtrue;d=3DGSvideoBar.THUMBNAILS_SMALL}el=
se =
if(b=3D=3D"HORIZONTAL-MEDIUM"){c=3Dtrue;d=3DGSvideoBar.THUMBNAILS_MEDIUM}=
var f=3D{largeResultSet:false,=0A=
horizontal:c,autoExecuteList:{cycleTime:GSvideoBar.CYCLE_TIME_LONG,cycleM=
ode:GSvideoBar.CYCLE_MODE_RANDOM,executeList:e.split(/,/)},thumbnailSize:=
d},g;if(window["_UDS_vb_master"]!=3Dnull){g=3Dnull;f.master=3Dwindow["_UD=
S_vb_master"]}else{g=3Ddocument.getElementById("videoBar-player")}var =
h=3Dnew =
GSvideoBar(a,g,f);if(g!=3Dnull){window["_UDS_vb_master"]=3Dh}window[a.id]=
=3Dh}var =
_VideoBarView=3Dw_z;_VideoBarView._Configure=3D_VideoBarView.Configure;fu=
nction w_3(a){document.write('<script src=3D"'+a+'" =
type=3D"text/javascript"><\/script>')}function =
w_4(a){document.write('<style type=3D"text/css"> @import url( "'+a+'" =
);</style>')}function w_1(a){if(w_0()){w_j("Tried to add an onload after =
page loaded..")}else{var =
b=3Dwindow;if(b.addEventListener){b.addEventListener("load",a,false)}else=
 =
if(b.attachEvent){b.attachEvent("onload",a)}else{b["onload"]=3Da}}}functi=
on w_pa(){window["_UDS_loaded"]=3Dtrue}function w_0(){return =
window["_UDS_loaded"]}function w_x(a){this.a=3D=0A=
a}w_x.WIDGET_TYPE_NAME=3D"NewsBar";w_x.prototype.e=3Dfunction(){return =
w_x.WIDGET_TYPE_NAME};w_x.prototype.c=3Dfunction(){return =
this.a};w_x.prototype.k=3Dfunction(){return =
false};w_x.prototype.d=3Dfunction(a,b){if(a=3D=3D"configure"){this.a.f(b)=
}};w_x.prototype.o=3Dfunction(){if(!window["_UDS_bootstrapped"]){var =
a;if(window.location.host.match(/blogger\.com$/)){a=3D"ABQIAAAAVBJEtyJuLx=
gUs8KlzeA1lRQpkWYODHKIJGlKH8M-8R98XOejsxRkHYkMWejKfPos1RBuAqHID9wA9Q"}els=
e{a=3Dthis.a.i()["key"]}w_3("http://www.google.com/uds/api?file=3Duds.js&=
v=3D1.0&source=3Duds-nbpe&key=3D"+=0A=
a);w_4("http://www.google.com/uds/css/gsearch.css");w_1(w_pa);window["_UD=
S_bootstrapped"]=3Dtrue}if(!window["_UDS_nb_bootstrapped"]){window._uds_n=
bw_donotrepair=3Dtrue;w_3("http://www.google.com/uds/solutions/newsbar/gs=
newsbar.js?mode=3Dnew");w_4("http://www.google.com/uds/solutions/newsbar/=
gsnewsbar.css");window["_UDS_nb_bootstrapped"]=3Dtrue}var =
b=3Dthis.c();if(!w_0()){w_1(w_2.bind(b))}else{window.setTimeout(w_2.bind(=
b),0)}};function w_2(){var =
a=3Dthis.L("bar"),b,c=3Dthis.i()["format"];if(c=3D=3D"VERTICAL"){b=3Dfals=
e}else if(c=3D=3D=0A=
"HORIZONTAL-SMALL"){b=3Dtrue}else =
if(c=3D=3D"HORIZONTAL-MEDIUM"){b=3Dtrue}var =
d=3Dthis.i()["expression"],e=3Dthis.i()["linkNewWindow"],f;if(e=3D=3Dtrue=
){f=3DGSearch.LINK_TARGET_BLANK}else{f=3DGSearch.LINK_TARGET_SELF}var =
g=3D{largeResultSet:false,horizontal:b,linkTarget:f,title:" =
",autoExecuteList:{executeList:d.split(/,/)}};if(b){g.autoExecuteList.cyc=
leTime=3DGSnewsBar.CYCLE_TIME_MEDIUM;g.autoExecuteList.cycleMode=3DGSnews=
Bar.CYCLE_MODE_RANDOM}var h=3Dnew GSnewsBar(a,g);window[a.id]=3Dh}var =
_NewsBarView=3Dw_x;_NewsBarView._Configure=3D=0A=
_NewsBarView.Configure;function =
w_c(){}w_c.Mb=3D{title:null,showStyle:null,showPosts:null,chronological:n=
ull,frequency:null,yearPattern:null,monthPattern:null,weekPattern:null,sh=
owWeekEnd:null,dayPattern:null,securityToken:null};w_c.ACTIVE_PREVIEW_CLA=
SS=3D"active-preview";w_c.PREVIEW_CLASS=3D"preview";w_c._SetConfiguration=
Options=3Dfunction(){w_b.ConfigureWidget(w_c.Mb)};w_c.UpdateFrequency=3Df=
unction(){var =
a=3Dw_g.GetFieldValue(document.forms.config.showStyle),b=3D{year:a=3D=3D"=
HIERARCHY",week:0,month:0,day:0},c=3Dw_g.GetFieldValue(document.forms.con=
fig.frequency);=0A=
if(c=3D=3D"WEEKLY"){b.week=3D1}else =
if(c=3D=3D"MONTHLY"){b.month=3D1}else =
if(c=3D=3D"DAILY"){b.month=3Da=3D=3D"HIERARCHY";b.day=3D1}var =
d=3Ddocument.forms.config.showPosts;if(a=3D=3D"HIERARCHY"){d.disabled=3Df=
alse}else{d.disabled=3Dtrue}for(var e in b){var =
f=3De+"pattern-wrap";w_qa(document.getElementById(f),b[e])}w_c.SelectPrev=
iew()};w_c._Init=3Dfunction(a){w_c.Ka=3Da;w_c.t=3Ddocument.getElementById=
("archive-previews");w_c.Ja=3Dw_J(w_c.t,w_c.PREVIEW_CLASS);w_c.UpdateFreq=
uency();w_c.Reformat("yearly",document.forms.config.yearPattern);w_c.Refo=
rmat("monthly",=0A=
document.forms.config.monthPattern);w_c.Reformat("weekly",document.forms.=
config.weekPattern);w_c.Reformat("daily",document.forms.config.dayPattern=
);w_c.UpdateWeekEnd();w_c.UpdatePreviewPostTitles();if(document.forms.con=
fig.chronological.checked){w_c.ToggleDirection()}};w_c.SelectPreview=3Dfu=
nction(){var =
a=3Dw_g.GetFieldValue(document.forms.config.showStyle),b=3Dw_g.GetFieldVa=
lue(document.forms.config.frequency);for(var =
c=3D0;c<w_c.Ja.length;c++){var =
d=3Dw_c.Ja[c];if(w_k(d,a)&&w_k(d,b)){w_q(d,w_c.ACTIVE_PREVIEW_CLASS);=0A=
if(w_k(d,"MENU")){w_c.Cb(d)}}else{w_t(d,w_c.ACTIVE_PREVIEW_CLASS);if(w_k(=
d,"MENU")){w_c.fb(d)}}}};w_c.fb=3Dfunction(a){var =
b=3Da.getElementsByTagName("select");for(var =
c=3D0;c<b.length;c++){b[c].style.display=3D"none"}};w_c.Cb=3Dfunction(a){=
var b=3Da.getElementsByTagName("select");for(var =
c=3D0;c<b.length;c++){b[c].style.display=3D"block"}};w_c.Reformat=3Dfunct=
ion(a,b){var c=3Dw_c.Ka[a];for(var d in c){var =
e=3Dc[d][b.selectedIndex];if(e)w_c.ReplaceSample(d,e)}if(a=3D=3D"weekly")=
{w_c.UpdateWeekEnd()}};w_c.ReplaceSample=3Dfunction(a,=0A=
b){var c=3Dw_J(w_c.t,a);for(var d=3D0;d<c.length;d++){var =
e=3Dc[d];e.innerHTML=3Db}};w_c.UpdateWeekEnd=3Dfunction(){w_6(w_c.t,docum=
ent.forms.config.showWeekEnd.checked,"weekend");var =
a=3Dw_c.Ka["weekly"],b=3Ddocument.getElementById("weekly-menu-select"),c=3D=
0,d=3Ddocument.forms.config.weekPattern.selectedIndex;for(var =
e=3D0;e<b.options.length;e++){var =
f=3Db.options[e],g=3Da["weekly"+c][d];c++;var =
h=3Da["weekly"+c][d],i=3Dg;if(document.forms.config.showWeekEnd.checked){=
i=3Di+" - =
"+h}f.text=3Di}};w_c.UpdatePreviewPostTitles=3Dfunction(){w_6(w_c.t,=0A=
document.forms.config.showPosts.checked,"preview-posts")};w_c.ToggleDirec=
tion=3Dfunction(){var a=3Dw_c.t.getElementsByTagName("UL");for(var =
b=3D0;b<a.length;b++){var =
c=3Da[b],d=3Dc.ownerDocument.createDocumentFragment();while(c.hasChildNod=
es())d.appendChild(c.lastChild);c.appendChild(d)}var =
e=3Dw_c.t.getElementsByTagName("SELECT");for(var =
b=3D0;b<e.length;b++){var f=3De[b],g=3Df.options.length;for(var =
h=3D0;h<=3Dg/2;h++){var =
i=3Df.options[h].innerHTML,j=3Dg-h-1;f.options[h].innerHTML=3Df.options[j=
].innerHTML;f.options[j].innerHTML=3D=0A=
i}f.options[0].selected=3D0}};function w_6(a,b,c){var =
d=3Dw_J(a,c);for(var e=3D0;e<d.length;e++){var =
f=3Dd[e];w_ra(f,b)}}function w_J(a,b){var =
c=3D{};c.select=3Dfunction(d){return d&&w_k(d,b)};return w_Q(a,c)}var =
_ArchiveConfig=3Dw_c;_ArchiveConfig._UpdateFrequency=3D_ArchiveConfig.Upd=
ateFrequency;_ArchiveConfig._Reformat=3D_ArchiveConfig.Reformat;_ArchiveC=
onfig._UpdateWeekEnd=3D_ArchiveConfig.UpdateWeekEnd;_ArchiveConfig._Updat=
ePreviewPostTitles=3D_ArchiveConfig.UpdatePreviewPostTitles;_ArchiveConfi=
g._ToggleDirection=3D=0A=
_ArchiveConfig.ToggleDirection;function =
w_C(a){this.a=3Da;this.b=3Da.g()}w_C.WIDGET_TYPE_NAME=3D"Label";w_C.proto=
type.e=3Dfunction(){return =
w_C.WIDGET_TYPE_NAME};w_C.prototype.c=3Dfunction(){return =
this.a};w_C.prototype.d=3Dfunction(a,b){this.a.f(b)};function =
w_l(){}w_l.Wa=3D{sorting:null,title:null,securityToken:null};w_l._Configu=
re=3Dfunction(){w_b.ConfigureWidget(w_l.Wa)};w_l.HIDDEN_CLASS=3D"hidden";=
w_l.PREVIEW_ROOT_ID=3D"preview-wrap";w_l.PREVIEW_CLASS=3D"preview";w_l._S=
howPreview=3Dfunction(a){var =
b=3Ddocument.getElementById(w_l.PREVIEW_ROOT_ID),c=3D=0A=
w_J(b,w_l.PREVIEW_CLASS);for(var =
d=3D0;d<c.length;d++){w_q(c[d],w_l.HIDDEN_CLASS)}w_t(document.getElementB=
yId(a),w_l.HIDDEN_CLASS)};var =
_LabelView=3Dw_C,_LabelConfig=3Dw_l;function =
w_y(a){this.a=3Da;this.b=3Da.g()}w_y.WIDGET_TYPE_NAME=3D"TextList";w_y.pr=
ototype.e=3Dfunction(){return =
w_y.WIDGET_TYPE_NAME};w_y.prototype.c=3Dfunction(){return =
this.a};w_y.prototype.k=3Dfunction(){return =
false};w_y.prototype.d=3Dfunction(a,b){if(a=3D=3D"configure"){this.a.f(b)=
}};w_y.prototype.N=3Dfunction(){return =
this.b.data["items"].length>0};var _TextListView=3Dw_y;function =
w_w(a){this.a=3Da;this.b=3Da.g()}w_w.WIDGET_TYPE_NAME=3D"LinkList";w_w.pr=
ototype.e=3Dfunction(){return =
w_w.WIDGET_TYPE_NAME};w_w.prototype.k=3Dfunction(){return =
false};w_w.prototype.c=3Dfunction(){return =
this.a};w_w.prototype.d=3Dfunction(a,b){if(a=3D=3D"configure"){this.a.f(b=
)}};var =
_LinkListView=3Dw_w;_LinkListView.prototype=3Dw_w.prototype;function =
w_D(a){this.a=3Da;this.b=3Da.g()}w_D.prototype.e=3Dfunction(){return"Blog=
gerButton"};w_D.prototype.c=3Dfunction(){return =
this.a};w_D.prototype.d=3Dfunction(a,b){this.a.f(b)};w_D.prototype.N=3Dfu=
nction(){return true};var _BloggerButtonView=3Dw_D;function =
w_p(a){this.a=3Da;this.b=3Da.g()}w_p.WIDGET_TYPE_NAME=3D"Navbar";w_p.prot=
otype.e=3Dfunction(){return =
w_p.WIDGET_TYPE_NAME};w_p.prototype.c=3Dfunction(){return =
this.a};w_p.prototype.k=3Dfunction(){return =
false};w_p.prototype.d=3Dfunction(a,b){this.a.f(b)};w_p.FilterMap=3D{navb=
artype:null,securityToken:null};w_p.ConfigureWidget=3Dfunction(){w_b.Conf=
igureWidget(w_p.FilterMap)};var =
_NavbarView=3Dw_p;_NavbarView.prototype=3Dw_p.prototype;_NavbarView._Conf=
igureWidget=3D_NavbarView.ConfigureWidget;function =
w_A(a){this.a=3Da;this.b=3Da.g()}w_A.WIDGET_TYPE_NAME=3D"Profile";w_A.pro=
totype.k=3Dfunction(){return false};w_A.prototype.e=3Dfunction(){return =
w_A.WIDGET_TYPE_NAME};w_A.prototype.c=3Dfunction(){return =
this.a};w_A.prototype.d=3Dfunction(a,b){if(a=3D=3D"configure"){this.a.f(b=
)}};var _ProfileView=3Dw_A;function w_ia(a){var =
b=3Da.toLowerCase();for(var c=3D0;c<document.styleSheets.length;c++){var =
d=3Ddocument.styleSheets[c],e=3Dd.cssRules?d.cssRules:d.rules;for(var =
f=3D0;f<e.length;f++){var =
g=3De[f];if(g.selectorText.toLowerCase().indexOf(b)!=3D-1){return =
g}}return null}};var w_Y=3D"/feedReaderJson/";function =
w_ja(a){w_Y=3Da}function w_Z(a){return"FW_ScriptElement"+a}function =
w_E(){this.requests=3D{};this.currentId=3D0;this.completed=3D[]}w_E.proto=
type.ob=3Dfunction(a,b){var =
c=3D++this.currentId,d=3D{};d.handler=3Da;d.errorHandler=3Db;this.request=
s[c]=3Dd;return c};w_E.prototype.ea=3Dfunction(a){var =
b=3Dthis.requests[a];this.requests[a]=3Dnull;this.completed.push(a);retur=
n b};w_E.prototype.Pa=3Dfunction(){while(this.completed.length){var =
a=3Dthis.completed.pop(),b=3Ddocument.getElementById(w_Z(a));=0A=
if(b){b.parentNode.removeChild(b)}}};w_E.prototype.sb=3Dfunction(a,b,c,d,=
e,f){this.Pa();var =
g=3Dthis.ob(c,d),h=3D"_FW_getHandler("+g+")",i=3D"_FW_getErrorHandler("+g=
+")",j=3Dw_Y+"?feedUrl=3D"+encodeURIComponent(a)+"&n=3D"+b+"&callback=3D"=
+encodeURIComponent(h)+"&errorCallback=3D"+encodeURIComponent(i)+"&locale=
=3D"+encodeURIComponent(e)+"&timeZone=3D"+encodeURIComponent(f),l=3Dw_Z(g=
),k=3Ddocument.createElement("script");k.type=3D"text/javascript";k.chars=
et=3D"utf-8";k.src=3Dj;k.id=3Dl;document.getElementsByTagName("head")[0].=
appendChild(k)};=0A=
var w_P=3Dnew w_E;function w_ga(a){return w_P.ea(a).handler}function =
w_fa(a){return w_P.ea(a).errorHandler}function =
w_ha(a,b,c,d,e,f){w_P.sb(a,b,c,d,e,f)}var =
_FW_setFeedReaderJsonBaseUrl=3Dw_ja,_FW_getHandler=3Dw_ga,_FW_getErrorHan=
dler=3Dw_fa;function =
w_a(a,b,c,d){this.m=3Da;this.Q=3Db;this.Qb=3Dc;this.H=3Dd;this.V=3Dnew =
w_m("status-message");this.G=3D"";this.Ga=3Dfalse}w_a.ib=3D5;w_a.Ua=3D"mo=
duleTitle";w_a.Xb=3D"feedUrl";w_a.$=3D"step1";w_a.aa=3D"step1Buttons";w_a=
.ba=3D"step2";w_a.ca=3D"preview";w_a.tb=3D"item-title";w_a.va=3D"item-dat=
e";w_a.ua=3D"item-author";w_a.A=3D"feedUrl";w_a.prototype.Ra=3Dfunction(a=
){this.V.Y();w_g.ClearError(w_a.A);if((!a.items||a.items.length=3D=3D=3D0=
)&&a.title=3D=3D=3D""){this.ya()}else{var =
b=3Ddocument.getElementById(w_a.Ua);if(b.value=3D=3D=3D""||this.Ga){b.val=
ue=3D=0A=
a.title;this.R=3Da.title}this.Z(a);this.cb();this.nb(b)}};w_a.prototype.n=
b=3Dfunction(a){a.style.display=3D"none";a.style.display=3D""};w_a.protot=
ype.ya=3Dfunction(){this.V.Y();w_g.SetError(w_a.A,this.H._invalidFeedUrl)=
;this.ia()};w_a.prototype.Bb=3Dfunction(){};w_a.prototype.Z=3Dfunction(a)=
{this.pb(this.Q);for(var b=3D0;b<a.items.length;b++){var =
c=3Da.items[b];this.Na(c,this.Q)}this.qa();this.na();this.oa();this.pa()}=
;w_a.prototype.ia=3Dfunction(){this.p(w_a.$,true);this.p(w_a.aa,true);thi=
s.p(w_a.ba,false);this.p(w_a.ca,=0A=
false)};w_a.prototype.cb=3Dfunction(){this.p(w_a.$,false);this.p(w_a.aa,f=
alse);this.p(w_a.ba,true);this.p(w_a.ca,true)};w_a.prototype.p=3Dfunction=
(a,b){w_5(document.getElementById(a),b)};w_a.prototype.Ob=3Dfunction(a){r=
eturn =
a?"":"none"};w_a.prototype.za=3Dfunction(a,b){if(this.m){return}var =
c=3Dw_ia(a);c.style.display=3Dthis.Ob(b)};w_a.prototype.vb=3Dfunction(a){=
this.R=3Da;this.pa()};w_a.prototype.pa=3Dfunction(){if(this.m){return}thi=
s.Qb.innerHTML=3Dthis.R};w_a.prototype.yb=3Dfunction(a){this.T=3Da;this.n=
a()};w_a.prototype.na=3D=0A=
function(){this.za(w_a.ua,this.T)};w_a.prototype.zb=3Dfunction(a){this.U=3D=
a;this.oa()};w_a.prototype.oa=3Dfunction(){this.za(w_a.va,this.U)};w_a.pr=
ototype.xb=3Dfunction(a){this.Ia=3Da;this.qa()};w_a.prototype.qa=3Dfuncti=
on(){var a=3Dthis.Q.getElementsByTagName("li");for(var =
b=3D0;b<a.length;b++){w_5(a[b],b<this.Ia)}};w_a.prototype.Na=3Dfunction(a=
,b){var c=3Ddocument.createElement("li");b.appendChild(c);var =
d=3Ddocument.createElement("span");d.className=3Dw_a.tb;c.appendChild(d);=
var e=3Ddocument.createElement("a");d.appendChild(e);=0A=
e.href=3Da.alternate.href;if(this.m){e.target=3D"_self"}else{e.target=3D"=
_blank"}e.innerHTML=3Da.title;if(!this.m||this.U){var =
f=3Ddocument.createElement("span");f.className=3Dw_a.va;f.innerHTML=3D"&n=
bsp;-&nbsp;"+a.str_published;c.appendChild(f)}if(!this.m||this.T){var =
g=3Ddocument.createElement("span");g.className=3Dw_a.ua;g.innerHTML=3D"&n=
bsp;-&nbsp;"+a.author;c.appendChild(g)}};w_a.prototype.pb=3Dfunction(a){w=
hile(a.firstChild){a.removeChild(a.firstChild)}};w_a.prototype.rb=3Dfunct=
ion(a,b,c,d,e,f,g){if(!a||a=3D=3D=3D""){w_g.SetError(w_a.A,=0A=
this.H._missingFeedUrl);return}if(a.length>2083){w_g.SetError(w_a.A,this.=
H._feedUrlTooLong);return}this.V.l(this.H._retrievingFeed);this.xa(a,b,c,=
d,e,f,g);this.sa(w_a.prototype.Ra,w_a.prototype.ya)};w_a.prototype.qb=3Df=
unction(a,b,c,d,e,f,g){this.xa(a,b,c,d,null,e,f);var =
h=3Dw_F(w_a.prototype.sa,this,w_a.prototype.Z,w_a.prototype.Bb);window.se=
tInterval(h,g*1000)};w_a.prototype.sa=3Dfunction(a,b){var =
c=3Dw_F(a,this),d=3Dw_F(b,this);w_ha(this.G,w_a.ib,c,d,this.Pb,this.Sb)};=
w_a.prototype.xa=3Dfunction(a,b,c,d,e,=0A=
f,g){this.Ga=3Dthis.G!=3D""&&this.G!=3Da;this.G=3Da;this.Ia=3Db;this.U=3D=
c;this.T=3Dd;this.R=3De;this.Pb=3Df;this.Sb=3Dg};w_a.prototype._GoToStep1=
=3Dw_a.prototype.ia;w_a.prototype._RetrieveFeedAndGoToStep2=3Dw_a.prototy=
pe.rb;w_a.prototype._SetModuleTitleAndRefresh=3Dw_a.prototype.vb;w_a.prot=
otype._SetShowItemAuthorAndRefresh=3Dw_a.prototype.yb;w_a.prototype._SetS=
howItemDateAndRefresh=3Dw_a.prototype.zb;w_a.prototype._SetNumItemsShowAn=
dRefresh=3Dw_a.prototype.xb;var _FW_FeedController=3Dw_a;function =
w_r(a){this.a=3Da}w_r.prototype.c=3Dfunction(){return =
this.a};w_r.prototype.e=3Dfunction(){return"Feed"};w_r.prototype.d=3Dfunc=
tion(a,b){this.a.f(b)};w_r.prototype.o=3Dfunction(){var =
a=3Dthis.a.L("feedItemListDisplay"),b=3Dnew =
w_a(true,a,null,null),c=3Dthis.a.g().data;b.qb(c.feedUrl,c.numItemsShow,c=
.showItemDate,c.showItemAuthor,c.locale,c.timeZone,c.feedWidgetRefreshInt=
ervalSec)};w_r.Va=3D{moduleTitle:null,feedUrl:w_g.GetRequiredStringFilter=
(),numItemsShow:w_g.GetNumberFilter(1,5),showItemDate:null,showItemAuthor=
:null,=0A=
securityToken:null};w_r.setConfigurationOptions=3Dfunction(){w_b.Configur=
eWidget(w_r.Va)};var =
_FeedView=3Dw_r;_FeedView._setConfigurationOptions=3Dw_r.setConfiguration=
Options;=0A=

------=_NextPart_000_0000_01C76C7E.1EED5D60--

