tilt.attachEvent(document, "contentreceived", function(){

	try {
		CustomLayoutProcessing.preLayoutProcessing();
	} catch(e){};

	// look for google analytics meta data
	try {
		var oHead = first(document.getElementsByTagName("head"));
		if (oHead) {
			foreach(map(oHead.getElementsByTagName("meta")), function(oMeta) {
				if (oMeta.getAttribute("name") == "google-analytics") {
					var oGoogleDiv = document.createElement("div");
					oGoogleDiv.className = "l-google-analytics";
					oGoogleDiv.innerHTML =
						'<script src="http://www.google-analytics.com/urchin.js" type="text/javascript"></script><script type="text/javascript">' +
						oMeta.getAttribute("content") +
						'</script>';
					document.body.appendChild(oGoogleDiv);
					return true;
				}
			});
		}
	} catch(e){};
	try {
	var nbsp = String.fromCharCode(160);
	var body = document.body;
	var isHome = true;
	var form = document.getElementById("form");
	var SCRIPTBASE = "";
	if (form) {
		var cas = new ElementIdBag(
			"login",
			"properties",
			"presentation",
			"titling",
			"search",
			"pagetools",
			"sitetools",
			"globalnav",
			"content",
			"navigation",
			"contactinfo",
			"footer",
			"globalfeeds",
			"feeds"
		);

		// break down the titles
		var siteTitle = [];
		var pageTitle;
		var sectionTitle = [];
		var otherTitle = [];
		var siteImage = [];
		var sectionImage = [];
		var pageImage;
		var otherImage = [];
		var parent;
		var searchSubmit;
		var searchBox;
		
		foreach(cas.titling, function(child) {
			var className = child.className;

			if (child.getElementsByTagName("img").Length > 0) {
				if (className.indexOf("page") >= 0) {
					pageImage = child;
				} else if (className.indexOf("Site") >= 0) {
					siteImage.push(child);
				} else if (className.indexOf("Section") >= 0) {
					sectionImage.push(child);
				} else {
					otherImage.push(child);
				}
			} else {
				if (className.indexOf("page") >= 0) {
					pageTitle = child;
				} else if (className.indexOf("Site") >= 0) {
					siteTitle.push(child);
				} else if (className.indexOf("Section") >= 0) {
					sectionTitle.push(child);
				} else {
					otherTitle.push(child);
				}
			}
		})
		
		// add "Search " to search box
		if (cas.search) {
			var inputs = cas.search.getElementsByTagName("input");
			searchBox = first(inputs);
			if (searchBox) {
				var defaultValue = "Search ";
				var defaultClassName = searchBox.className;
				searchBox.value = defaultValue;
				tilt.attachEvent(searchBox, "focus", function(box) {
					if (searchBox.value == defaultValue) {
						searchBox.value = "";
						searchBox.className = defaultClassName + " active";
					}
				});
				tilt.attachEvent(searchBox, "blur", function(box) {
					if (searchBox.value.length === 0) {
						searchBox.value = defaultValue;
						searchBox.className = defaultClassName;
					}
				});
			}
			searchSubmit = inputs[1];
			if (searchSubmit) {
				searchSubmit.value = "";
			}
		}

			
		var nav = cas.navigation && first(cas.navigation.getElementsByTagName("ul"));
		if (nav) {
			var home = first(nav.getElementsByTagName("li"));
			var homea = first(home.getElementsByTagName("a"));
			if (!homea || homea.rel != "Home") {
				home = null;
			}
			if (homea)
			{
				homea.className = homea.className + " Home";
				nav = first(nav.getElementsByTagName("ul"));
				nav.className = "l-sections";
				foreach(nav.getElementsByTagName("a"), function(a) {
					if (a.className.indexOf("current") >= 0) {
						if (a.className.indexOf("extra") >= 0) {
							extra = a;
						}
						return true;
					} else {
						if (a.className.indexOf("crumb") >= 0) {
							section = a;
							return true;
						}
					}
				})
			}
		}
		
		// break down the feeds
		var f1 = [];
		var f2 = [];
		var f3 = [];
		var f4 = [];
		var f5 = [];
		var f6 = [];
		var f7 = [];
		var feeds = [];
		
		var allfeeds = [];
		if (cas.globalfeeds) {
			allfeeds.push(cas.globalfeeds);
		}
		if (cas.feeds) {
			allfeeds.push(cas.feeds);
		}
		for (var i = 0; i < allfeeds.length; i++) {
			foreach(allfeeds[i], function(item) {
				var classNames = item.className.split(" ");
				if (classNames[0] == "feed") {
					if (classNames.length > 0) {
						var type = classNames[1];
						switch(classNames[1]) {
							case "f1":
								f1.push(item);
								break;
							case "f2":
								f2.push(item);
								break;
							case "f3":
								f3.push(item);
								break;
							case "f4":
								f4.push(item);
								break;
							case "f5":
								f5.push(item);
								break;
							case "f6":
								f6.push(item);
								break;
							case "f7":
								f7.push(item);
								break;
							default:
								feeds.push(item);
								break;
						}
					}
					else {
						feeds.push(item);
					}
				}
			});
		}

		form.appendChild(
			tilt.createTable(
			{
				"l-header":
					[
						siteTitle,
						siteImage,
						sectionTitle,
						sectionImage,
						otherTitle,
						otherImage,
						tilt.createDiv(
							[
								tilt.createDiv( [searchBox,	searchSubmit], "search")
							], "l-search"),
						cas.pagetools,
						cas.globalnav
					],
				"l-tools":
					[
						tilt.createDiv(
							[
								cas.sitetools
							], "l-tools")
					],
				"l-middle":
					{
						"l-middle": tilt.createTable(
						{
							"l-body":
							{
								"l-left":
									[ f6, tilt.createDiv(cas.navigation, "l-navigation"), f7 ],
								"l-center":
									tilt.createTable(
									{
										"l-titling": pageTitle,
										"l-content": cas.content,
										"l-middle-feeds": { "f1": f1, "f2": f2, "f5": f5 }
									}, "l-maincontent"),
								"l-right": (f3.length > 0 || feeds.length > 0) && tilt.createDiv(
								[
									f3, feeds
								], "l-feeds")
							}
						}, "l-body")
					},


				"l-footer":
					[
						cas.footer, cas.contactinfo
					]
			}, "l-main")
		);
		
		// if there is a floating feed (f4) then put it inside of the main content area
		if (f4 && f4.length > 0)
		{
			var innerfeed = document.createElement("div");
			innerfeed.className = "innerfeed";
			foreach (f4 , function(f4feed) {
				innerfeed.appendChild(f4feed);
			});
			var floater = document.createElement("div");
			floater.className = "floater";
			floater.appendChild(innerfeed);
			var divcontent = document.getElementById("content");
			if (divcontent)
			{
				if (divcontent.childNodes)
				{
					divcontent.insertBefore(floater, divcontent.childNodes[0]);
				}
			}
		}
		// mark first li as "first"
		foreach(form.getElementsByTagName("ul"), function(ul) {
			var items = ul.getElementsByTagName("li");
			if (items.length > 0) {
				var li = items[0];
				li.className = li.className + " first";
			}
		});

		// find the anchor that classified as 'current' in the navigation
		var currentAnchor = null;
		foreach(cas.navigation.getElementsByTagName("A"),function(el) {
			if (hasClass(el,"current"))
			{
				currentAnchor = el;
				return;
			}
		});
		if (currentAnchor)
		{
			currentAnchor.parentNode.className = currentAnchor.parentNode.className + " current";
		} else {
			var currentDiv = null;
			foreach(cas.navigation.getElementsByTagName("div"),function(el) {
				if (hasClass(el,"current"))
				{
					currentDiv = el;
					return;
				}
			});
			if (currentDiv)
			{
				currentDiv.parentNode.className = currentDiv.parentNode.className + " current";
			}
		}

		// mark the ul and li elements with unique class
		var listnum = 0;
		numberLists(cas.navigation, currentAnchor);
			
		// add 'last' class to last li element in Peers list
		foreach(cas.navigation.getElementsByTagName("ul"), function(u) {
			if (hasClass(u,"Peers"))
			{
				if (u.lastChild)
				{
					var oElm =  (u.lastChild.nodeType == "3") ? u.lastChild.previousSibling : u.lastChild;
					oElm.className = oElm.className + " last";
				}
			}
		});
		
		foreach(cas.navigation.getElementsByTagName("A"), function(a) {
			if (a.getAttribute("rel") == "Home")
			{
				isHome = false;
			}
		});
		
		if (isHome)
		{
			body.className = body.className + " Home";
		} else {
			body.className = body.className + " Inner";
		}

		// replace images with flash by convention
		foreach(map(document.getElementsByTagName("img")), function(img) {
			var imgparent = img.parentNode
			var src = img.src;
			if (src && src.indexOf(".swf.") > 0) {
				//tilt.attachEvent(img, "load", replaceWithFlash);
				replaceWithFlash(img);
			}
		});

		// include script for datetime picker, if needed
		if (filter(document.getElementsByTagName("input"), function(input) {
			return input.className.indexOf("date") >= 0;
		}).length > 0) {
			tilt.addScript("datetime.js");	
		}
		if (cas.content) {
			if (foreach(cas.content.getElementsByTagName("div"), function(div) {
				if (div.className == "visibility") {
					div.id = "grid-visibility";
					return true;
				}
			})) {
				tilt.addScript("grid.js");
			}
		}
		// include script for category-editor, if needed
		if (filter(document.getElementsByTagName("div"), function(div) {
			return div.className.indexOf("category-editor") >= 0;
		}).length > 0) {
			tilt.addScript("dynamictree.js");	
		}

		createAdminUI();

		if (cas.titling) {
			cas.titling.parentNode.removeChild(cas.titling);
		}
		if (cas.search) {
			cas.search.parentNode.removeChild(cas.search);
		}
		if (cas.feeds) {
			cas.feeds.parentNode.removeChild(cas.feeds);
		}
		
		var divs = document.getElementsByTagName("div");
		if (divs && divs.length > 0)
		{
			for (var x=0; x < divs.length; ++x)
			{
				if (hasClass(divs[x], "articles"))
				{
					addMoreLinkToArticles(divs[x]);
				}
				
				// promote authoring class up to navigation div so
				// entire navigation can be hidden if not logged in
				if (divs[x].className == 'navigation')
				{
					var litems = document.getElementsByTagName("li");
					if (litems && litems.length > 0)
					{
						for (var z=0; z < litems.length; ++z)
						{
							if (hasClass(litems[z],"authoring"))
							{
								divs[x].className = divs[x].className + " authoring";
								z = litems.length; // this is to drop out of loop
							}
						}
					}
				}
			}
		}
		
		// set relative text for posted dates
		var oDateParent = null;
		var oNewDate = null;
		foreach(map(getElements(document, "div", "lastCommentPosted")), function(oLastComment) {
			if (oLastComment.parentNode) {
				var oCommentCount = first(getElements(oLastComment.parentNode, "span", "comment-count"));
				if (oCommentCount) {
					if (oCommentCount.innerHTML <= "0") {
						oLastComment.parentNode.removeChild(oLastComment);
					} else {
						foreach(map(getElements(oLastComment, "abbr", "posted")), function(oDate) {
							if (oDate) {
								oLastComment.className = oLastComment.className + " l-relative-date";
								oLastComment.innerHTML = setDateText(oDate);
							}
						});
					}
				}
			}
		});
		var oComments = document.getElementById("comments");

		if (oComments) {
			foreach(map(getElements(oComments, "abbr", "posted")), function(oDate) {
				if (oDate) {
					oNewDate = document.createElement("div");
					oNewDate.className = "l-relative-date";
					oNewDate.innerHTML = setDateText(oDate);
					oDateParent = oDate.parentNode;
					if (oDateParent && oDateParent.parentNode) {
						var oTmp = oDateParent.parentNode;
						oTmp.replaceChild(oNewDate,oDateParent);
					}
				}
			});
		}
		var oPost = document.getElementById("post");
		if (oPost) {
			foreach(map(getElements(oPost, "abbr", "posted")), function(oDate) {
				if (oDate) {
					oNewDate = document.createElement("div");
					oNewDate.className = "l-relative-date";
					oNewDate.innerHTML = setDateText(oDate);
					oDateParent = oDate.parentNode;
					if (oDateParent && oDateParent.parentNode && oDateParent.parentNode.parentNode) {
						var oTmp = oDateParent.parentNode.parentNode;
						oTmp.replaceChild(oNewDate,oDateParent.parentNode);
					}
				}
			});
		}
		var oDiscussion = document.getElementById("discussion");
		if (oDiscussion) {
			foreach(map(getElements(oDiscussion, "abbr", "posted")), function(oDate) {
				if (oDate && oDate.parentNode && oDate.parentNode.parentNode && oDate.parentNode.parentNode.parentNode) {
					oNewDate = document.createElement("div");
					oNewDate.className = "l-relative-date";
					oNewDate.innerHTML = setDateText(oDate);
					oDate.parentNode.parentNode.parentNode.replaceChild(oNewDate,oDate.parentNode.parentNode);
				}
			});
		}

		var oGlobalNavFeed = first(getElements(document, "div", "globalnav"));
		if (oGlobalNavFeed) {
			if (oGlobalNavFeed.getElementsByTagName("a")) {
				var oGlobalNav = document.getElementById("globalnav");
				if (oGlobalNav) {
					oGlobalNav.parentNode.replaceChild(oGlobalNavFeed, oGlobalNav);
					var oFeeds = first(getElements(document, "div", "l-feeds"));
					if (oFeeds) {
						var oDivs = getElements(oFeeds, "div", "feed");
						if (oDivs.length <= 0) {
							var oRight = first(getElements(document, "td", "l-right"));
							if (oRight) {
								oRight.parentNode.removeChild(oRight);
							}
						}
					}
				}
			}
		}

		var oInputSubmits = getElementsByType(document, "input", "submit");
		var iIdx = 0;
		foreach (map(oInputSubmits), function(oInputSubmit) {
			var oAncestorNode = null;
			oCurrentNode = oInputSubmit.parentNode;
			while (oAncestorNode == null && oCurrentNode != document) {
				var oInputTextFields = getElementsByType(oCurrentNode, "input", "text");
				if (oInputTextFields && oInputTextFields.length > 0) {
					oAncestorNode = oCurrentNode;
				} else {
					oCurrentNode = oCurrentNode.parentNode;
				}
			}
			if (oAncestorNode) {
				var oSubmitCheck = getElementsByType(oAncestorNode, "input", "submit");
				if (oSubmitCheck && oSubmitCheck.length == 1) {
					if (oInputSubmit.id == "") {
						oInputSubmit.id = oInputSubmit.name;
					}
					foreach (map(oAncestorNode.getElementsByTagName("input")), function (oInput) {
						if (oInput.type == "text" || oInput.type == "password") {
							oInput.setAttribute("submitId", oInputSubmit.id);
							tilt.attachEvent(oInput, "keydown", function(oNode, oE) {
								if (oE.keyCode == 13) {
									var oSubmitId = oNode.getAttribute("submitId");
									//window.setTimeout("var oSubmit = document.getElementById(\"" + oSubmitId + "\");oSubmit.focus();oSubmit.click()", 0);
									window.setTimeout(function() {
										var oSubmit = document.getElementById(oSubmitId);
										switch (oSubmit.className) {
											case "returnnosubmit":
												return false;
												break
											case "returnnextfield":
												moveToNextInput(oNode);
												break;
											default:
												oSubmit.focus();
												oSubmit.click();
												break;
										}
									}, 0);
									return false;
								}
								return true;
							});
						}
					});
					iIdx++;
				}
			}
		});

		// open all external links in a new window
		window.status = "Making external links open in new window...";
		var anchors = document.getElementsByTagName("A");
		var host = location.protocol + "//" + location.host;
		var href;
		for(var i = 0; i < anchors.length; i ++)
		{
			href = anchors[i].getAttribute("href");
			if (href) {
				if ((href.indexOf("/") != 0) &&
						((href.indexOf("http:") == 0) && (href.indexOf(host) != 0)) &&
						(href.indexOf("estrada3") < 0) &&
						(href.indexOf("javascript") < 0))
				{
					anchors[i].setAttribute("target", "_blank");
				}
			}
		}
		window.status = window.defaultStatus;
	}
	}catch(e){alert(e)}
	

	try {
		CustomLayoutProcessing.postLayoutProcessing();
	}catch(e){};
	
	function moveToNextInput(input) {
		var idx = 0;
		while (idx < input.form.length) {
			if (input.form[idx] == input){
				break;
			}
			++idx;
		}
		if (idx < input.form.length) {
			if (idx == input.form.length) {
				idx = 0;
			}
			else {
				++idx;
			}
			input.form[idx].focus();
		}
	}
	
	function numberLists(node, cur) {
		var inum = 0;
		var nodes = node.childNodes;
		if (nodes)
		{
			var length = nodes.length;
			for (var idx = 0; idx < length; ++idx)
			{
				if (nodes[idx].tagName)
				{
					switch (nodes[idx].tagName.toLowerCase())
					{
						case "ul":
							nodes[idx].className = nodes[idx].className + " l" + listnum++; 
							numberLists(nodes[idx],cur);
							break;
						case "li":
							nodes[idx].className = nodes[idx].className + " i" + inum++;
							var anchors = nodes[idx].getElementsByTagName("A");
							if (anchors.length)
							{
								tilt.attachEvent(anchors[0], "mouseover", function(el) {
									if (cur && cur.childNodes[0].className) cur.childNodes[0].className = "notover";
									if (el && el.childNodes[0].className) el.childNodes[0].className = "over";
								});
								tilt.attachEvent(anchors[0], "mouseout", function(el) {
									if (el && el.childNodes[0].className) el.childNodes[0].className = "notover";
									if (cur && cur.childNodes[0].className) cur.childNodes[0].className = "over";
								});			
							}
							numberLists(nodes[idx],cur);
							break;
					}
				}
			}
		}
	}
	
	function addMoreLinkToArticles(articles) {
		if (articles) {
			var item = articles.getElementsByTagName("li");
			if (item && item.length > 0) {
				for (var idx=0; idx < item.length; ++idx)
				{
					var link = first(item[idx].getElementsByTagName("a"));
					var more = item[idx].appendChild(document.createElement("div"));			
					more.className = "l-more";
					more.appendChild(link.cloneNode(true)).innerHTML = "...more";
				}
			}
		}
	}
	
	function ElementIdBag()
	{
		this.contains = function()
		{
			for(var i = 0; i < arguments.length; i++)
			{
				if (!this[arguments[i]])
				{
					return false;
				}
			}
			return true;
		}
		
		for(var i = 0; i < arguments.length; i++)
		{
			var id = arguments[i];
			var element = document.getElementById(id);
			if (element)
			{
				this[id] = element;
			}
		}
	}
	
	function hasClass(node, className)
	{
		var rv = false;
		var classNames = node.className.split(" ");
		if (classNames && classNames.length > 0)
		{
			for (var y=0; (y < classNames.length) && (rv == false); ++y)
			{
				if (classNames[y] == className)
				{
					rv = true;
				}
			}
		}
		return rv;	
	}
	
	function replaceWithFlash(img)
	{
		var width = img.currentStyle ? img.currentStyle.width.replace(/px/, "") : img.width;			
		var height = img.currentStyle ? img.currentStyle.height.replace(/px/, "") : img.height;
		var src = img.src;
		if (width && height && src) {
			var movie = src.replace(/\.swf\..+/, ".swf");
			var version = 4;
			var useNetscapePlugins = navigator.plugins && navigator.mimeTypes.length;
			if (detectFlash())
			{
				var child = img;
				var oParent = img.parentNode;
				if (oParent.nodeName.toUpperCase() == "A") {
					child = oParent;
					oParent = oParent.parentNode;
				}
				var classname = child.className;
				var flashDiv = document.createElement("div");
				flashDiv.className = classname;
				flashDiv.innerHTML = createMovieHtml();
				oParent.replaceChild(flashDiv, child);
				//parent.removeChild(child);
				//parent.innerHTML = parent.innerHTML + "<div class=\"" + classname + "\">" + createMovieHtml() + "</div>";
			}
			
		}

		function createMovieHtml()
		{
			var sizeAttributes = "width=\"" + width + "\" height=\"" + height + "\"";
			return useNetscapePlugins ?
				"<embed type=\"application/x-shockwave-flash\" src=\"" + movie + "\" " + sizeAttributes + "></embed>"
				:
				"<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" " + sizeAttributes + "><param name=\"movie\" value=\"" + movie + "\" /></object>";
		}
		
		function detectFlash()
            {
                  return getFlashVersion() >= version;

                  function getFlashVersion()
                  {
                        if (useNetscapePlugins)
                        {
                              var plugin = navigator.plugins["Shockwave Flash"];
                              if(plugin && plugin.description)
                              {
                                    var description = plugin.description;
                                    var idx = description.indexOf('.')-2;
                              return description.substring(idx, idx+2);
                              }
                        } 
                        else
                        {
                              var version = 0;
                              for(var i = 4; i >= 3; i--)
                              {
                                    var testObject;
                                    try
                                    {
                                          testObject = new ActiveXObject("ShockwaveFlash.ShockwaveFlash." +  i);
                                    }
                                    catch(e)
                                    {
                                          continue;
                                    }
                                    return i;
                              }
                        }
                        return 0;
                  }
            }
	 }
	
	function addScript(script, base) {
		if (script && document.body) {
			var scriptbase = base;
			var e = document.body.appendChild(document.createElement("script"));
			e.type = "text/javascript";
			if (base == null || base =="")
			{
				scriptbase = SCRIPTBASE;
			}
			e.src =  scriptbase + script;
		}
	}
	
	function findFirstElementOfClass(start, element, classname)
	{
		var foundElement = null;
		foreach(start.getElementsByTagName(element), function(el) {
			if (el.className.indexOf(classname) >= 0)
			{
				foundElement = el;
				return true;
			}
		});
		return foundElement;
	}
	function getElementsByType(oElm, strTagName, strTypeName) {
		var oElement;
		var arrReturnElements = [ ];
		if (oElm) {
			var arrElements = (strTagName == "*" && oElm.all) ? oElm.all : oElm.getElementsByTagName(strTagName);
			for(var i=0;i<arrElements.length;i++) {
				oElement = arrElements[i];
				if((oElement.type && (oElement.type == strTypeName)) || (oElement.type && strTypeName == "*")) {
					arrReturnElements.push(oElement);
				}   
			}
		}
		return (arrReturnElements)
	}
	function getElements(oElm, strTagName, strClassName)
	{
		var oElement;
		var arrReturnElements = [ ];
		if (oElm) {
			var arrElements = (strTagName == "*" && oElm.all) ? oElm.all : oElm.getElementsByTagName(strTagName);
			for(var i=0;i<arrElements.length;i++) {
				oElement = arrElements[i];
				if (oElement.className) {
					var oClasses = oElement.className.split(" ");
					var bolFound = false;
					var intXX = 0;
					while (!bolFound && (intXX < oClasses.length)) {
						if (oClasses[intXX] == strClassName) {
							bolFound = true;
						} else {
							++intXX;
						}
					}
					if (!bolFound) {
						if (strClassName == "*") {
							bolFound = true;
						}
					}
				} else {
					if (strClassName == "*") {
						bolFound = true;
					}
				}
				if (bolFound) {
					arrReturnElements.push(oElement);
				}
			}
		}
		return (arrReturnElements)
	}	
	////////////////////////////////////////////////////////////////////
	// set the date text to an english relative statement
	////////////////////////////////////////////////////////////////////
	function setDateText(oDate) {
		var strDateText = "";
		if (oDate) {
			var strDate = oDate.getAttribute("title");
			strDateText = strDate;
			if (strDate) {
				var oToday = new Date();
				var oPostDate = new Date(strDate);
				var intDiff = (oToday - oPostDate) / 1000;
				if (intDiff < 60) {
					strDateText = "few seconds ago";
				} else if (intDiff < 120) {
					strDateText = "a minute ago";
				} else if (intDiff < 3600) {
	 				strDateText = Math.floor(intDiff/60) + " minutes ago";
				} else if (intDiff < 7200) {
	 				strDateText = "an hour ago";
				} else if (intDiff < 86400) {
	 				strDateText = Math.floor(intDiff/3600) + " hours ago";
				} else if (intDiff < 172800) {
	 				strDateText = "yesterday";
				} else if (intDiff <= 2592000) {
	 				strDateText = Math.floor(intDiff/86400) + " days ago";
				} else if (intDiff > 2592000) {
	 				strDateText = "over a month ago";
				}
			} else {
				strDateText = oDate.innerHTML;
			}
		}
		return strDateText;
	}
	function createAdminUI() {
        var form = document.getElementById("form");
        var authoring = document.body.insertBefore(document.createElement("form"), document.body.firstChild);
        authoring.method = form.method;
        authoring.action = form.action;
        authoring.id = "l-authoring";
	    var trigger = authoring.appendChild(document.createElement("a"));
	    trigger.href = "admin";
	    trigger.className = "l-trigger";
	    tilt.attachEvent(trigger, "click", function(a) {
		    var currentClassName = a.parentNode.className;
		    if (currentClassName.indexOf("l-admin-open") >= 0) {
			    a.innerHTML = "Authoring";
			    a.parentNode.className = "l-admin-closed";
			    document.cookie = "keep-authoring-open=false";
		    }
		    else {
			    a.innerHTML = "Close";
			    a.parentNode.className = "l-admin-open";
			    document.cookie = "keep-authoring-open=true";
		    }
		    return false;
	    });
	    var properties = document.getElementById("properties");
	    if (properties) {
	        authoring.appendChild(properties);
		    foreach(properties.getElementsByTagName("input"), function(input) {
		        if (input.type == "text") {
		            tilt.attachEvent(input, "keydown", function(node, e) {
		                if (e.keyCode == 13) {
	                        window.setTimeout("document.getElementById(window.__authoringPropertiesApplyId).click()", 0);
	                        return false;
		                }
		                return true;
		            });
		        }
		        else {
		            window.__authoringPropertiesApplyId = input.id;
		        }
		    });
		    var pid;
		    foreach(properties.getElementsByTagName("a"), function(a) {
		        if (a.className == "admin") {
		            var href = a.href;
		            var pos = href.indexOf("durki=");
		            if (pos >= 0) {
		                pid = href.substring(pos + 6);
		            }
		        }
		    });
		    if (pid) {
		        var div = properties.appendChild(document.createElement("div")); 
		        div.className = "l-pid";
		        div.innerHTML = "page id: " + pid;
		    }
	    }
	    var isOpen = document.cookie.indexOf("keep-authoring-open=true") >= 0 || properties;
	    if (isOpen) {
	        authoring.className = "l-admin-open";
		    trigger.innerHTML = "Close";
	    }
	    else {
	        authoring.className = "l-admin-closed";
		    trigger.innerHTML = "Authoring";
	    }
	    var login = authoring.appendChild(document.getElementById("login"));
	    foreach(login.getElementsByTagName("input"), function(input) {
	        if (input.type == "text") {
	            tilt.attachEvent(input, "keydown", function(node, e) {
	                if (e.keyCode == 13) {
                        window.setTimeout("document.getElementById(window.__authoringLoginId).click()", 0);
                        return false;
	                }
	                return true;
	            });
	        }
	        else {
	            window.__authoringLoginId = input.id;
	        }
	    });
	    foreach(authoring.getElementsByTagName("legend"), function(legend) {
	        var value = legend.innerHTML;
	        var parent = legend.parentNode;
	        var div = parent.insertBefore(document.createElement("div"), legend);
	        div.className = "l-legend";
	        div.innerHTML = value;
	        parent.removeChild(legend);
	    });
	    foreach(authoring.getElementsByTagName("fieldset"), function(fieldset) {
	        var parent = fieldset.parentNode;
	        var div = parent.insertBefore(document.createElement("div"), fieldset);
	        div.innerHTML = fieldset.innerHTML;
	        parent.removeChild(fieldset);
	    });
    }
});


