diff --git a/dist/javascript/jquery-1.1.js b/dist/javascript/jquery-1.1.js
index 68a75d9ed4f8b4de179a5692212e03e55885fc8c..709be4ac2ef3f811e934f37d219a0866bf2e4a7f 100644
--- a/dist/javascript/jquery-1.1.js
+++ b/dist/javascript/jquery-1.1.js
@@ -1,14 +1,14 @@
 /* prevent execution of jQuery if included more than once */
 if(typeof window.jQuery == "undefined") {
 /*
- * jQuery 1.1 - New Wave Javascript
+ * jQuery 1.1.1 - New Wave Javascript
  *
  * Copyright (c) 2007 John Resig (jquery.com)
  * Dual licensed under the MIT (MIT-LICENSE.txt)
  * and GPL (GPL-LICENSE.txt) licenses.
  *
- * $Date: 2007-01-17 14:37:51 +0100 (Wed, 17 Jan 2007) $
- * $Rev: 1106 $
+ * $Date: 2007-01-22 00:27:54 -0500 (Mon, 22 Jan 2007) $
+ * $Rev: 1153 $
  */
 
 // Global undefined variable
@@ -23,14 +23,13 @@ var jQuery = function(a,c) {
 	
 	// HANDLE: $(function)
 	// Shortcut for document ready
-	// Safari reports typeof on DOM NodeLists as a function
-	if ( jQuery.isFunction(a) && !a.nodeType && a[0] == undefined )
+	if ( jQuery.isFunction(a) )
 		return new jQuery(document)[ jQuery.fn.ready ? "ready" : "load" ]( a );
 	
 	// Handle HTML strings
 	if ( typeof a  == "string" ) {
 		// HANDLE: $(html) -> $(array)
-		var m = /^[^<]*(<.+>)[^>]*$/.exec(a);
+		var m = /^[^<]*(<(.|\n)+>)[^>]*$/.exec(a);
 		if ( m )
 			a = jQuery.clean( [ m[1] ] );
 		
@@ -59,7 +58,7 @@ if ( typeof $ != "undefined" )
 var $ = jQuery;
 
 jQuery.fn = jQuery.prototype = {
-	jquery: "1.1",
+	jquery: "1.1.1",
 
 	size: function() {
 		return this.length;
@@ -103,7 +102,7 @@ jQuery.fn = jQuery.prototype = {
 		// Look for the case where we're accessing a style value
 		if ( key.constructor == String )
 			if ( value == undefined )
-				return jQuery[ type || "attr" ]( this[0], key );
+				return this.length && jQuery[ type || "attr" ]( this[0], key ) || undefined;
 			else {
 				obj = {};
 				obj[ key ] = value;
@@ -219,7 +218,10 @@ jQuery.fn = jQuery.prototype = {
 	add: function(t) {
 		return this.pushStack( jQuery.merge(
 			this.get(),
-			typeof t == "string" ? jQuery(t).get() : t.length ? t : [t] )
+			t.constructor == String ?
+				jQuery(t).get() :
+				t.length != undefined && !t.nodeName ?
+					t : [t] )
 		);
 	},
 	is: function(expr) {
@@ -246,7 +248,7 @@ jQuery.fn = jQuery.prototype = {
 		return this.each(function(){
 			var obj = this;
 
-			if ( table && this.nodeName.toUpperCase() == "TABLE" && a[0].nodeName.toUpperCase() == "TR" )
+			if ( table && jQuery.nodeName(this, "table") && jQuery.nodeName(a[0], "tr") )
 				obj = this.getElementsByTagName("tbody")[0] || this.appendChild(document.createElement("tbody"));
 
 			jQuery.each( a, function(){
@@ -280,10 +282,18 @@ jQuery.extend({
 	noConflict: function() {
 		if ( jQuery._$ )
 			$ = jQuery._$;
+		return jQuery;
 	},
 
+	// This may seem like some crazy code, but trust me when I say that this
+	// is the only cross-browser way to do this. --John
 	isFunction: function( fn ) {
-		return fn && typeof fn == "function";
+		return !!fn && typeof fn != "string" &&
+			typeof fn[0] == "undefined" && /function/i.test( fn + "" );
+	},
+
+	nodeName: function( elem, name ) {
+		return elem.nodeName && elem.nodeName.toUpperCase() == name.toUpperCase();
 	},
 	// args is for internal usage only
 	each: function( obj, fn, args ) {
@@ -474,7 +484,7 @@ jQuery.extend({
 						tb = div.childNodes;
 
 					for ( var n = tb.length-1; n >= 0 ; --n )
-						if ( tb[n].nodeName.toUpperCase() == "TBODY" && !tb[n].childNodes.length )
+						if ( jQuery.nodeName(tb[n], "tbody") && !tb[n].childNodes.length )
 							tb[n].parentNode.removeChild(tb[n]);
 					
 				}
@@ -533,7 +543,7 @@ jQuery.extend({
 			if ( value != undefined ) elem[fix[name]] = value;
 			return elem[fix[name]];
 
-		} else if ( value == undefined && jQuery.browser.msie && elem.nodeName && elem.nodeName.toUpperCase() == "FORM" && (name == "action" || name == "method") )
+		} else if ( value == undefined && jQuery.browser.msie && jQuery.nodeName(elem, "form") && (name == "action" || name == "method") )
 			return elem.getAttributeNode(name).nodeValue;
 
 		// IE elem.getAttribute passes even for style
@@ -728,7 +738,7 @@ jQuery.each( [ "height", "width" ], function(i,n){
 });
 jQuery.extend({
 	expr: {
-		"": "m[2]=='*'||a.nodeName.toUpperCase()==m[2].toUpperCase()",
+		"": "m[2]=='*'||jQuery.nodeName(a,m[2])",
 		"#": "a.getAttribute('id')==m[2]",
 		":": {
 			// Position Checks
@@ -773,7 +783,7 @@ jQuery.extend({
 			submit: "a.type=='submit'",
 			image: "a.type=='image'",
 			reset: "a.type=='reset'",
-			button: 'a.type=="button"||a.nodeName=="BUTTON"',
+			button: 'a.type=="button"||jQuery.nodeName(a,"button")',
 			input: "/input|select|textarea|button/i.test(a.nodeName)"
 		},
 		".": "jQuery.className.has(a,m[2])",
@@ -876,12 +886,13 @@ jQuery.extend({
 				// Perform our own iteration and filter
 				jQuery.each( ret, function(){
 					for ( var c = this.firstChild; c; c = c.nextSibling )
-						if ( c.nodeType == 1 && ( c.nodeName == m[1].toUpperCase() || m[1] == "*" ) )
+						if ( c.nodeType == 1 && ( jQuery.nodeName(c, m[1]) || m[1] == "*" ) )
 							r.push( c );
 				});
 
 				ret = r;
-				t = jQuery.trim( t.replace( re, "" ) );
+				t = t.replace( re, "" );
+				if ( t.indexOf(" ") == 0 ) continue;
 				foundToken = true;
 			} else {
 				// Look for pre-defined expression tokens
@@ -947,7 +958,7 @@ jQuery.extend({
 						// Do a quick check for node name (where applicable) so
 						// that div#foo searches will be really fast
 						ret = r = oid && 
-						  (!m[3] || oid.nodeName == m[3].toUpperCase()) ? [oid] : [];
+						  (!m[3] || jQuery.nodeName(oid, m[3])) ? [oid] : [];
 
 					} else {
 						// Pre-compile a regular expression to handle class searches
@@ -962,7 +973,7 @@ jQuery.extend({
 							var tag = m[1] != "" || m[0] == "" ? "*" : m[2];
 
 							// Handle IE7 being really dumb about <object>s
-							if ( this.nodeName.toUpperCase() == "OBJECT" && tag == "*" )
+							if ( jQuery.nodeName(this, "object") && tag == "*" )
 								tag = "param";
 
 							jQuery.merge( r,
@@ -1204,28 +1215,36 @@ jQuery.event = {
 		data = jQuery.makeArray(data || []);
 
 		// Handle a global trigger
-		if ( !element ) {
-			var g = this.global[type];
-			if ( g )
-				jQuery.each( g, function(){
-					jQuery.event.trigger( type, data, this );
-				});
+		if ( !element )
+			jQuery.each( this.global[type] || [], function(){
+				jQuery.event.trigger( type, data, this );
+			});
 
 		// Handle triggering a single element
-		} else if ( element["on" + type] ) {
-			// Pass along a fake event
-			data.unshift( this.fix({ type: type, target: element }) );
+		else {
+			var handler = element["on" + type ], val,
+				fn = jQuery.isFunction( element[ type ] );
+
+			if ( handler ) {
+				// Pass along a fake event
+				data.unshift( this.fix({ type: type, target: element }) );
 	
-			// Trigger the event
-			var val = element["on" + type].apply( element, data );
+				// Trigger the event
+				if ( (val = handler.apply( element, data )) !== false )
+					this.triggered = true;
+			}
 
-			if ( val !== false && jQuery.isFunction( element[ type ] ) )
+			if ( fn && val !== false )
 				element[ type ]();
+
+			this.triggered = false;
 		}
 	},
 
 	handle: function(event) {
-		if ( typeof jQuery == "undefined" ) return false;
+		// Handle the second event of a trigger and when
+		// an event is called after a page has unloaded
+		if ( typeof jQuery == "undefined" || jQuery.event.triggered ) return;
 
 		// Empty object is for triggered events with no data
 		event = jQuery.event.fix( event || window.event || {} ); 
@@ -1905,6 +1924,11 @@ jQuery.extend({
 		return jQuery.get(url, data, callback, "json");
 	},
 	post: function( url, data, callback, type ) {
+		if ( jQuery.isFunction( data ) ) {
+			callback = data;
+			data = {};
+		}
+
 		return jQuery.ajax({
 			type: "POST",
 			url: url,
@@ -2150,7 +2174,7 @@ jQuery.extend({
 			// Serialize the key/values
 			for ( var j in a )
 				// If the value is an array then the key names need to be repeated
-				if ( a[j].constructor == Array )
+				if ( a[j] && a[j].constructor == Array )
 					jQuery.each( a[j], function(){
 						s.push( encodeURIComponent(j) + "=" + encodeURIComponent( this ) );
 					});