/*
 * jQuery 1.2.6 - New Wave Javascript
 *
 * Copyright (c) 2008 John Resig (jquery.com)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * $Date: 2008-05-24 14:22:17 -0400 (Sat, 24 May 2008) $
 * $Rev: 5685 $
 */
(function(){
	var _jQuery=window.jQuery,_$=window.$;
	var jQuery=window.jQuery=window.$=function(selector,context){
		return new jQuery.fn.init(selector,context);
	};
	var quickExpr=/^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/,isSimple=/^.[^:#\[\.]*$/,undefined;jQuery.fn=jQuery.prototype={
		init:function(selector,context){
			selector=selector||document;
			if(selector.nodeType){
				this[0]=selector;
				this.length=1;
				return this;
			}
			if(typeof selector=="string"){
				var match=quickExpr.exec(selector);
				if(match&&(match[1]||!context)){
					if(match[1])
						selector=jQuery.clean([match[1]],context);
					else{
						var elem=document.getElementById(match[3]);
						if(elem){
							if(elem.id!=match[3])
								return jQuery().find(selector);
							return jQuery(elem);
						}
						selector=[];
					}
				}else
					return jQuery(context).find(selector);
			}else if(jQuery.isFunction(selector))
				return jQuery(document)[jQuery.fn.ready?"ready":"load"](selector);
			return this.setArray(jQuery.makeArray(selector));
		},jquery:"1.2.6",size:function(){
			return this.length;
		},length:0,get:function(num){
			return num==undefined?jQuery.makeArray(this):this[num];
		},pushStack:function(elems){
			var ret=jQuery(elems);
			ret.prevObject=this;
			return ret;
		},setArray:function(elems){
			this.length=0;
			Array.prototype.push.apply(this,elems);
			return this;
		},each:function(callback,args){
			return jQuery.each(this,callback,args);
		},index:function(elem){
			var ret=-1;
			return jQuery.inArray(elem&&elem.jquery?elem[0]:elem,this);
		},attr:function(name,value,type){
			var options=name;
			if(name.constructor==String)
				if(value===undefined)
					return this[0]&&jQuery[type||"attr"](this[0],name);
				else{
					options={};options[name]=value;
				}
				return this.each(function(i){
					for(name in options)
						jQuery.attr(type?this.style:this,name,jQuery.prop(this,options[name],type,i,name));
				});
		},css:function(key,value){
			if((key=='width'||key=='height')&&parseFloat(value)<0)
				value=undefined;
			return this.attr(key,value,"curCSS");
		},text:function(text){
			if(typeof text!="object"&&text!=null)
				return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(text));
			var ret="";
			jQuery.each(text||this,function(){
				jQuery.each(this.childNodes,function(){
					if(this.nodeType!=8)
						ret+=this.nodeType!=1?this.nodeValue:jQuery.fn.text([this]);
				});
			});
			return ret;
		},wrapAll:function(html){
			if(this[0])
				jQuery(html,this[0].ownerDocument).clone().insertBefore(this[0]).map(function(){
					var elem=this;
					while(elem.firstChild)
						elem=elem.firstChild;
					return elem;
				}).append(this);
				return this;
		},wrapInner:function(html){
			return this.each(function(){
				jQuery(this).contents().wrapAll(html);
			});
		},wrap:function(html){
			return this.each(function(){
				jQuery(this).wrapAll(html);
			});
		},append:function(){
			return this.domManip(arguments,true,false,function(elem){
				if(this.nodeType==1)
					this.appendChild(elem);
			});
		},prepend:function(){
			return this.domManip(arguments,true,true,function(elem){
				if(this.nodeType==1)
					this.insertBefore(elem,this.firstChild);
			});
		},before:function(){
			return this.domManip(arguments,false,false,function(elem){
				this.parentNode.insertBefore(elem,this);
			});
		},after:function(){
			return this.domManip(arguments,false,true,function(elem){
				this.parentNode.insertBefore(elem,this.nextSibling);
			});
		},end:function(){
			return this.prevObject||jQuery([]);
		},find:function(selector){
			var elems=jQuery.map(this,function(elem){
				return jQuery.find(selector,elem);
			});
			return this.pushStack(/[^+>] [^+>]/.test(selector)||selector.indexOf("..")>-1?jQuery.unique(elems):elems);
		},clone:function(events){
			var ret=this.map(function(){
				if(jQuery.browser.msie&&!jQuery.isXMLDoc(this)){
					var clone=this.cloneNode(true),container=document.createElement("div");
					container.appendChild(clone);
					return jQuery.clean([container.innerHTML])[0];
				}else
					return this.cloneNode(true);
			});
			var clone=ret.find("*").andSelf().each(function(){
				if(this[expando]!=undefined)
					this[expando]=null;
			});
			if(events===true)
				this.find("*").andSelf().each(function(i){
					if(this.nodeType==3)
						return;
					var events=jQuery.data(this,"events");
					for(var type in events)
						for(var handler in events[type])
							jQuery.event.add(clone[i],type,events[type][handler],events[type][handler].data);
				});
				return ret;
		},filter:function(selector){
			return this.pushStack(jQuery.isFunction(selector)&&jQuery.grep(this,function(elem,i){
				return selector.call(elem,i);
			})||jQuery.multiFilter(selector,this));
		},not:function(selector){
			if(selector.constructor==String)
				if(isSimple.test(selector))
					return this.pushStack(jQuery.multiFilter(selector,this,true));
				else
					selector=jQuery.multiFilter(selector,this);
			var isArrayLike=selector.length&&selector[selector.length-1]!==undefined&&!selector.nodeType;
			return this.filter(function(){
				return isArrayLike?jQuery.inArray(this,selector)<0:this!=selector;
			});
		},add:function(selector){
			return this.pushStack(jQuery.unique(jQuery.merge(this.get(),typeof selector=='string'?jQuery(selector):jQuery.makeArray(selector))));
		},is:function(selector){
			return!!selector&&jQuery.multiFilter(selector,this).length>0;},hasClass:function(selector){
				return this.is("."+selector);
			},val:function(value){
				if(value==undefined){
					if(this.length){
						var elem=this[0];
						if(jQuery.nodeName(elem,"select")){
							var index=elem.selectedIndex,values=[],options=elem.options,one=elem.type=="select-one";
							if(index<0)
								return null;
							for(var i=one?index:0,max=one?index+1:options.length;i<max;i++){
								var option=options[i];
								if(option.selected){
									value=jQuery.browser.msie&&!option.attributes.value.specified?option.text:option.value;
									if(one)
										return value;
									values.push(value);
								}
							}
							return values;
						}else
							return(this[0].value||"").replace(/\r/g,"");
					}
					return undefined;
				}
				if(value.constructor==Number)
					value+='';
				return this.each(function(){
					if(this.nodeType!=1)
						return;
					if(value.constructor==Array&&/radio|checkbox/.test(this.type))
						this.checked=(jQuery.inArray(this.value,value)>=0||jQuery.inArray(this.name,value)>=0);
					else if(jQuery.nodeName(this,"select")){
						var values=jQuery.makeArray(value);
						jQuery("option",this).each(function(){
							this.selected=(jQuery.inArray(this.value,values)>=0||jQuery.inArray(this.text,values)>=0);
						});
						if(!values.length)
							this.selectedIndex=-1;
					}else
						this.value=value;
				});
			},html:function(value){
				return value==undefined?(this[0]?this[0].innerHTML:null):this.empty().append(value);
			},replaceWith:function(value){
				return this.after(value).remove();
			},eq:function(i){
				return this.slice(i,i+1);
			},slice:function(){
				return this.pushStack(Array.prototype.slice.apply(this,arguments));
			},map:function(callback){
				return this.pushStack(jQuery.map(this,function(elem,i){
					return callback.call(elem,i,elem);
				}));
			},andSelf:function(){
				return this.add(this.prevObject);
			},data:function(key,value){
				var parts=key.split(".");
				parts[1]=parts[1]?"."+parts[1]:"";
				if(value===undefined){
					var data=this.triggerHandler("getData"+parts[1]+"!",[parts[0]]);
					if(data===undefined&&this.length)
						data=jQuery.data(this[0],key);
					return data===undefined&&parts[1]?this.data(parts[0]):data;
				}else
					return this.trigger("setData"+parts[1]+"!",[parts[0],value]).each(function(){
						jQuery.data(this,key,value);
					});
			},removeData:function(key){
				return this.each(function(){
					jQuery.removeData(this,key);
				});
			},domManip:function(args,table,reverse,callback){
				var clone=this.length>1,elems;
				return this.each(function(){
					if(!elems){
						elems=jQuery.clean(args,this.ownerDocument);
						if(reverse)
							elems.reverse();
					}
					var obj=this;
					if(table&&jQuery.nodeName(this,"table")&&jQuery.nodeName(elems[0],"tr"))
						obj=this.getElementsByTagName("tbody")[0]||this.appendChild(this.ownerDocument.createElement("tbody"));
					var scripts=jQuery([]);
					jQuery.each(elems,function(){
						var elem=clone?jQuery(this).clone(true)[0]:this;
						if(jQuery.nodeName(elem,"script"))
							scripts=scripts.add(elem);
						else{
							if(elem.nodeType==1)
								scripts=scripts.add(jQuery("script",elem).remove());
							callback.call(obj,elem);
						}
					});
					scripts.each(evalScript);
				});
			}
		};
		jQuery.fn.init.prototype=jQuery.fn;
		function evalScript(i,elem){
			if(elem.src)
				jQuery.ajax({url:elem.src,async:false,dataType:"script"});
			else
				jQuery.globalEval(elem.text||elem.textContent||elem.innerHTML||"");
			if(elem.parentNode)
				elem.parentNode.removeChild(elem);
		}
		function now(){
			return+new Date;
		}
		jQuery.extend=jQuery.fn.extend=function(){
			var target=arguments[0]||{},i=1,length=arguments.length,deep=false,options;
			if(target.constructor==Boolean){
				deep=target;
				target=arguments[1]||{};
				i=2;
			}
			if(typeof target!="object"&&typeof target!="function")
				target={};
			if(length==i){
				target=this;
				--i;
			}
			for(;i<length;i++)
				if((options=arguments[i])!=null)
					for(var name in options){
						var src=target[name],copy=options[name];
						if(target===copy)
							continue;
						if(deep&&copy&&typeof copy=="object"&&!copy.nodeType)
							target[name]=jQuery.extend(deep,src||(copy.length!=null?[]:{}),copy);
						else if(copy!==undefined)
							target[name]=copy;
					}
					return target;
		};
		var expando="jQuery"+now(),uuid=0,windowData={},exclude=/z-?index|font-?weight|opacity|zoom|line-?height/i,defaultView=document.defaultView||{};
		jQuery.extend({
			noConflict:function(deep){
				window.$=_$;
				if(deep)
					window.jQuery=_jQuery;
				return jQuery;
			},isFunction:function(fn){
				return!!fn&&typeof fn!="string"&&!fn.nodeName&&fn.constructor!=Array&&/^[\s[]?function/.test(fn+"");
			},isXMLDoc:function(elem){
				return elem.documentElement&&!elem.body||elem.tagName&&elem.ownerDocument&&!elem.ownerDocument.body;
			},globalEval:function(data){
				data=jQuery.trim(data);
				if(data){
					var head=document.getElementsByTagName("head")[0]||document.documentElement,script=document.createElement("script");
					script.type="text/javascript";
					if(jQuery.browser.msie)
						script.text=data;
					else
						script.appendChild(document.createTextNode(data));
					head.insertBefore(script,head.firstChild);
					head.removeChild(script);
				}
			},nodeName:function(elem,name){
				return elem.nodeName&&elem.nodeName.toUpperCase()==name.toUpperCase();
			},cache:{
			},data:function(elem,name,data){
				elem=elem==window?windowData:elem;
				var id=elem[expando];
				if(!id)
					id=elem[expando]=++uuid;
				if(name&&!jQuery.cache[id])
					jQuery.cache[id]={};
				if(data!==undefined)
					jQuery.cache[id][name]=data;
				return name?jQuery.cache[id][name]:id;
			},removeData:function(elem,name){
				elem=elem==window?windowData:elem;
				var id=elem[expando];
				if(name){
					if(jQuery.cache[id]){
						delete jQuery.cache[id][name];
						name="";
						for(name in jQuery.cache[id])
							break;
						if(!name)
							jQuery.removeData(elem);
					}
				}else{
					try{
						delete elem[expando];
					}
					catch(e){
						if(elem.removeAttribute)
							elem.removeAttribute(expando);
					}
					delete jQuery.cache[id];
				}
			},each:function(object,callback,args){
				var name,i=0,length=object.length;
				if(args){
					if(length==undefined){
						for(name in object)
							if(callback.apply(object[name],args)===false)
								break;
					}else
						for(;i<length;)
							if(callback.apply(object[i++],args)===false)
								break;
				}else{
					if(length==undefined){
						for(name in object)
							if(callback.call(object[name],name,object[name])===false)
								break;
					}else
						for(var value=object[0];i<length&&callback.call(value,i,value)!==false;value=object[++i]){}
				}
				return object;
			},prop:function(elem,value,type,i,name){
				if(jQuery.isFunction(value))
					value=value.call(elem,i);
				return value&&value.constructor==Number&&type=="curCSS"&&!exclude.test(name)?value+"px":value;
			},className:{
				add:function(elem,classNames){
					jQuery.each((classNames||"").split(/\s+/),function(i,className){
						if(elem.nodeType==1&&!jQuery.className.has(elem.className,className))
							elem.className+=(elem.className?" ":"")+className;
					});
				},remove:function(elem,classNames){
					if(elem.nodeType==1)
						elem.className=classNames!=undefined?jQuery.grep(elem.className.split(/\s+/),function(className){
							return!jQuery.className.has(classNames,className);
						}).join(" "):"";
				},has:function(elem,className){
					return jQuery.inArray(className,(elem.className||elem).toString().split(/\s+/))>-1;
				}
			},swap:function(elem,options,callback){
				var old={};
				for(var name in options){
					old[name]=elem.style[name];
					elem.style[name]=options[name];
				}
				callback.call(elem);
				for(var name in options)
					elem.style[name]=old[name];
			},css:function(elem,name,force){
				if(name=="width"||name=="height"){
					var val,props={
						position:"absolute",visibility:"hidden",display:"block"
					},which=name=="width"?["Left","Right"]:["Top","Bottom"];
					function getWH(){
						val=name=="width"?elem.offsetWidth:elem.offsetHeight;
						var padding=0,border=0;
						jQuery.each(which,function(){
							padding+=parseFloat(jQuery.curCSS(elem,"padding"+this,true))||0;
							border+=parseFloat(jQuery.curCSS(elem,"border"+this+"Width",true))||0;
						});
						val-=Math.round(padding+border);
					}
					if(jQuery(elem).is(":visible"))
						getWH();
					else
						jQuery.swap(elem,props,getWH);
					return Math.max(0,val);
				}
				return jQuery.curCSS(elem,name,force);
			},curCSS:function(elem,name,force){
				var ret,style=elem.style;
				function color(elem){
					if(!jQuery.browser.safari)
						return false;
					var ret=defaultView.getComputedStyle(elem,null);
					return!ret||ret.getPropertyValue("color")=="";
				}
				if(name=="opacity"&&jQuery.browser.msie){
					ret=jQuery.attr(style,"opacity");
					return ret==""?"1":ret;
				}
				if(jQuery.browser.opera&&name=="display"){
					var save=style.outline;
					style.outline="0 solid black";
					style.outline=save;
				}
				if(name.match(/float/i))
					name=styleFloat;
				if(!force&&style&&style[name])
					ret=style[name];
				else if(defaultView.getComputedStyle){
					if(name.match(/float/i))
						name="float";
					name=name.replace(/([A-Z])/g,"-$1").toLowerCase();
					var computedStyle=defaultView.getComputedStyle(elem,null);
					if(computedStyle&&!color(elem))
						ret=computedStyle.getPropertyValue(name);
					else{
						var swap=[],stack=[],a=elem,i=0;
						for(;a&&color(a);a=a.parentNode)
							stack.unshift(a);
						for(;i<stack.length;i++)
							if(color(stack[i])){
								swap[i]=stack[i].style.display;
								stack[i].style.display="block";
							}
							ret=name=="display"&&swap[stack.length-1]!=null?"none":(computedStyle&&computedStyle.getPropertyValue(name))||"";
							for(i=0;i<swap.length;i++)
								if(swap[i]!=null)
									stack[i].style.display=swap[i];
					}
					if(name=="opacity"&&ret=="")
						ret="1";
				}else if(elem.currentStyle){
					var camelCase=name.replace(/\-(\w)/g,function(all,letter){
						return letter.toUpperCase();
					});
					ret=elem.currentStyle[name]||elem.currentStyle[camelCase];
					if(!/^\d+(px)?$/i.test(ret)&&/^\d/.test(ret)){
						var left=style.left,rsLeft=elem.runtimeStyle.left;elem.runtimeStyle.left=elem.currentStyle.left;style.left=ret||0;ret=style.pixelLeft+"px";
						style.left=left;
						elem.runtimeStyle.left=rsLeft;
					}
				}
				return ret;
			},clean:function(elems,context){
				var ret=[];
				context=context||document;
				if(typeof context.createElement=='undefined')
					context=context.ownerDocument||context[0]&&context[0].ownerDocument||document;
				jQuery.each(elems,function(i,elem){
					if(!elem)
						return;
					if(elem.constructor==Number)
						elem+='';
					if(typeof elem=="string"){
						elem=elem.replace(/(<(\w+)[^>]*?)\/>/g,function(all,front,tag){
							return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?all:front+"></"+tag+">";
						});
						var tags=jQuery.trim(elem).toLowerCase(),div=context.createElement("div");
						var wrap=!tags.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!tags.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||tags.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!tags.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!tags.indexOf("<td")||!tags.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!tags.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||jQuery.browser.msie&&[1,"div<div>","</div>"]||[0,"",""];
						div.innerHTML=wrap[1]+elem+wrap[2];
						while(wrap[0]--)
							div=div.lastChild;
						if(jQuery.browser.msie){
							var tbody=!tags.indexOf("<table")&&tags.indexOf("<tbody")<0?div.firstChild&&div.firstChild.childNodes:wrap[1]=="<table>"&&tags.indexOf("<tbody")<0?div.childNodes:[];
							for(var j=tbody.length-1;j>=0;--j)
								if(jQuery.nodeName(tbody[j],"tbody")&&!tbody[j].childNodes.length)
									tbody[j].parentNode.removeChild(tbody[j]);
							if(/^\s/.test(elem))div.insertBefore(context.createTextNode(elem.match(/^\s*/)[0]),div.firstChild);
						}
						elem=jQuery.makeArray(div.childNodes);
					}
					if(elem.length===0&&(!jQuery.nodeName(elem,"form")&&!jQuery.nodeName(elem,"select")))
						return;
					if(elem[0]==undefined||jQuery.nodeName(elem,"form")||elem.options)
						ret.push(elem);
					else
						ret=jQuery.merge(ret,elem);
				});
				return ret;
			},attr:function(elem,name,value){
				if(!elem||elem.nodeType==3||elem.nodeType==8)
					return undefined;
				var notxml=!jQuery.isXMLDoc(elem),set=value!==undefined,msie=jQuery.browser.msie;
					name=notxml&&jQuery.props[name]||name;
				if(elem.tagName){
					var special=/href|src|style/.test(name);
					if(name=="selected"&&jQuery.browser.safari)
						elem.parentNode.selectedIndex;
					if(name in elem&&notxml&&!special){
						if(set){
							if(name=="type"&&jQuery.nodeName(elem,"input")&&elem.parentNode)
								throw"type property can't be changed";
							elem[name]=value;
						}
						if(jQuery.nodeName(elem,"form")&&elem.getAttributeNode(name))
							return elem.getAttributeNode(name).nodeValue;
						return elem[name];
					}
					if(msie&&notxml&&name=="style")
						return jQuery.attr(elem.style,"cssText",value);
					if(set)
						elem.setAttribute(name,""+value);
					var attr=msie&&notxml&&special?elem.getAttribute(name,2):elem.getAttribute(name);
					return attr===null?undefined:attr;
				}
				if(msie&&name=="opacity"){
					if(set){
						elem.zoom=1;
						elem.filter=(elem.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(value)+''=="NaN"?"":"alpha(opacity="+value*100+")");
					}
					return elem.filter&&elem.filter.indexOf("opacity=")>=0?(parseFloat(elem.filter.match(/opacity=([^)]*)/)[1])/100)+'':"";
				}
				name=name.replace(/-([a-z])/ig,function(all,letter){
					return letter.toUpperCase();
				});
				if(set)
					elem[name]=value;
				return elem[name];
			},trim:function(text){
				return(text||"").replace(/^\s+|\s+$/g,"");
			},makeArray:function(array){
				var ret=[];
				if(array!=null){
					var i=array.length;
					if(i==null||array.split||array.setInterval||array.call)
						ret[0]=array;
					else
						while(i)
							ret[--i]=array[i];
				}
				return ret;
			},inArray:function(elem,array){
				for(var i=0,length=array.length;i<length;i++)
					if(array[i]===elem)
						return i;
				return-1;
			},merge:function(first,second){
				var i=0,elem,pos=first.length;
				if(jQuery.browser.msie){
					while(elem=second[i++])
						if(elem.nodeType!=8)
							first[pos++]=elem;
				}else
					while(elem=second[i++])
						first[pos++]=elem;
				return first;
			},unique:function(array){
				var ret=[],done={};
				try{
					for(var i=0,length=array.length;i<length;i++){
						var id=jQuery.data(array[i]);
						if(!done[id]){
							done[id]=true;
							ret.push(array[i]);
						}
					}
				}
				catch(e){
					ret=array;
				}
				return ret;
			},grep:function(elems,callback,inv){
				var ret=[];
				for(var i=0,length=elems.length;i<length;i++)
					if(!inv!=!callback(elems[i],i))
						ret.push(elems[i]);
				return ret;
			},map:function(elems,callback){
				var ret=[];
				for(var i=0,length=elems.length;i<length;i++){
					var value=callback(elems[i],i);
					if(value!=null)
						ret[ret.length]=value;
				}
				return ret.concat.apply([],ret);
			}
		});
		var userAgent=navigator.userAgent.toLowerCase();
		jQuery.browser={
			version:(userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[])[1],safari:/webkit/.test(userAgent),opera:/opera/.test(userAgent),msie:/msie/.test(userAgent)&&!/opera/.test(userAgent),mozilla:/mozilla/.test(userAgent)&&!/(compatible|webkit)/.test(userAgent)
		};
		var styleFloat=jQuery.browser.msie?"styleFloat":"cssFloat";
		jQuery.extend({
			boxModel:!jQuery.browser.msie||document.compatMode=="CSS1Compat",props:{
				"for":"htmlFor","class":"className","float":styleFloat,cssFloat:styleFloat,styleFloat:styleFloat,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing"
			}
		});
		jQuery.each({
			parent:function(elem){
				return elem.parentNode;
			},parents:function(elem){
				return jQuery.dir(elem,"parentNode");
			},next:function(elem){
				return jQuery.nth(elem,2,"nextSibling");
			},prev:function(elem){
				return jQuery.nth(elem,2,"previousSibling");
			},nextAll:function(elem){
				return jQuery.dir(elem,"nextSibling");
			},prevAll:function(elem){
				return jQuery.dir(elem,"previousSibling");
			},siblings:function(elem){
				return jQuery.sibling(elem.parentNode.firstChild,elem);
			},children:function(elem){
				return jQuery.sibling(elem.firstChild);
			},contents:function(elem){
				return jQuery.nodeName(elem,"iframe")?elem.contentDocument||elem.contentWindow.document:jQuery.makeArray(elem.childNodes);
			}
		},function(name,fn){
			jQuery.fn[name]=function(selector){
				var ret=jQuery.map(this,fn);
				if(selector&&typeof selector=="string")
					ret=jQuery.multiFilter(selector,ret);
				return this.pushStack(jQuery.unique(ret));
			};
		});
		jQuery.each({
			appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"
		},function(name,original){
			jQuery.fn[name]=function(){
				var args=arguments;
				return this.each(function(){
					for(var i=0,length=args.length;i<length;i++)
						jQuery(args[i])[original](this);
				});
			};
		});
		jQuery.each({
			removeAttr:function(name){
				jQuery.attr(this,name,"");
				if(this.nodeType==1)
					this.removeAttribute(name);
			},addClass:function(classNames){
				jQuery.className.add(this,classNames);
			},removeClass:function(classNames){
				jQuery.className.remove(this,classNames);
			},toggleClass:function(classNames){
				jQuery.className[jQuery.className.has(this,classNames)?"remove":"add"](this,classNames);
			},remove:function(selector){
				if(!selector||jQuery.filter(selector,[this]).r.length){
					jQuery("*",this).add(this).each(function(){
						jQuery.event.remove(this);
						jQuery.removeData(this);
					});
					if(this.parentNode)
						this.parentNode.removeChild(this);
				}
			},empty:function(){
				jQuery(">*",this).remove();
				while(this.firstChild)
					this.removeChild(this.firstChild);
			}
		},function(name,fn){
			jQuery.fn[name]=function(){
				return this.each(fn,arguments);
			};
		});
		jQuery.each(["Height","Width"],function(i,name){
			var type=name.toLowerCase();
			jQuery.fn[type]=function(size){
				return this[0]==window?jQuery.browser.opera&&document.body["client"+name]||jQuery.browser.safari&&window["inner"+name]||document.compatMode=="CSS1Compat"&&document.documentElement["client"+name]||document.body["client"+name]:this[0]==document?Math.max(Math.max(document.body["scroll"+name],document.documentElement["scroll"+name]),Math.max(document.body["offset"+name],document.documentElement["offset"+name])):size==undefined?(this.length?jQuery.css(this[0],type):null):this.css(type,size.constructor==String?size:size+"px");
			};
		});
		function num(elem,prop){
			return elem[0]&&parseInt(jQuery.curCSS(elem[0],prop,true),10)||0;
		}
		var chars=jQuery.browser.safari&&parseInt(jQuery.browser.version)<417?"(?:[\\w*_-]|\\\\.)":"(?:[\\w\u0128-\uFFFF*_-]|\\\\.)",quickChild=new RegExp("^>\\s*("+chars+"+)"),quickID=new RegExp("^("+chars+"+)(#)("+chars+"+)"),quickClass=new RegExp("^([#.]?)("+chars+"*)");
		jQuery.extend({
			expr:{
				"":function(a,i,m){
					return m[2]=="*"||jQuery.nodeName(a,m[2]);
				},"#":function(a,i,m){
					return a.getAttribute("id")==m[2];
				},":":{
					lt:function(a,i,m){
						return i<m[3]-0;
					},gt:function(a,i,m){
						return i>m[3]-0;
					},nth:function(a,i,m){
						return m[3]-0==i;
					},eq:function(a,i,m){
						return m[3]-0==i;
					},first:function(a,i){
						return i==0;
					},last:function(a,i,m,r){
						return i==r.length-1;
					},even:function(a,i){
						return i%2==0;
					},odd:function(a,i){
						return i%2;
					},"first-child":function(a){
						return a.parentNode.getElementsByTagName("*")[0]==a;
					},"last-child":function(a){
						return jQuery.nth(a.parentNode.lastChild,1,"previousSibling")==a;
					},"only-child":function(a){
						return!jQuery.nth(a.parentNode.lastChild,2,"previousSibling");
					},parent:function(a){
						return a.firstChild;
					},empty:function(a){
						return!a.firstChild;
					},contains:function(a,i,m){
						return(a.textContent||a.innerText||jQuery(a).text()||"").indexOf(m[3])>=0;
					},visible:function(a){
						return"hidden"!=a.type&&jQuery.css(a,"display")!="none"&&jQuery.css(a,"visibility")!="hidden";
					},hidden:function(a){
						return"hidden"==a.type||jQuery.css(a,"display")=="none"||jQuery.css(a,"visibility")=="hidden";
					},enabled:function(a){
						return!a.disabled;
					},disabled:function(a){
						return a.disabled;
					},checked:function(a){
						return a.checked;
					},selected:function(a){
						return a.selected||jQuery.attr(a,"selected");
					},text:function(a){
						return"text"==a.type;
					},radio:function(a){
						return"radio"==a.type;
					},checkbox:function(a){
						return"checkbox"==a.type;
					},file:function(a){
						return"file"==a.type;
					},password:function(a){
						return"password"==a.type;
					},submit:function(a){
						return"submit"==a.type;
					},image:function(a){
						return"image"==a.type;
					},reset:function(a){
						return"reset"==a.type;
					},button:function(a){
						return"button"==a.type||jQuery.nodeName(a,"button");
					},input:function(a){
						return/input|select|textarea|button/i.test(a.nodeName);
					},has:function(a,i,m){
						return jQuery.find(m[3],a).length;
					},header:function(a){
						return/h\d/i.test(a.nodeName);
					},animated:function(a){
						return jQuery.grep(jQuery.timers,function(fn){
							return a==fn.elem;
						}).length;
					}
				}
			},parse:[/^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/,/^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/,new RegExp("^([:.#]*)("+chars+"+)")],multiFilter:function(expr,elems,not){
				var old,cur=[];
				while(expr&&expr!=old){
					old=expr;
					var f=jQuery.filter(expr,elems,not);
					expr=f.t.replace(/^\s*,\s*/,"");
					cur=not?elems=f.r:jQuery.merge(cur,f.r);
				}
				return cur;
			},find:function(t,context){
				if(typeof t!="string")
					return[t];
				if(context&&context.nodeType!=1&&context.nodeType!=9)
					return[];
				context=context||document;
				var ret=[context],done=[],last,nodeName;
				while(t&&last!=t){
					var r=[];
					last=t;
					t=jQuery.trim(t);
					var foundToken=false,re=quickChild,m=re.exec(t);
					if(m){
						nodeName=m[1].toUpperCase();
						for(var i=0;ret[i];i++)
							for(var c=ret[i].firstChild;c;c=c.nextSibling)
								if(c.nodeType==1&&(nodeName=="*"||c.nodeName.toUpperCase()==nodeName))
									r.push(c);
						ret=r;
						t=t.replace(re,"");
						if(t.indexOf(" ")==0)
							continue;
						foundToken=true;
					}else{
						re=/^([>+~])\s*(\w*)/i;
						if((m=re.exec(t))!=null){
							r=[];
							var merge={};
							nodeName=m[2].toUpperCase();
							m=m[1];
							for(var j=0,rl=ret.length;j<rl;j++){
								var n=m=="~"||m=="+"?ret[j].nextSibling:ret[j].firstChild;
								for(;n;n=n.nextSibling)
									if(n.nodeType==1){
										var id=jQuery.data(n);
										if(m=="~"&&merge[id])
											break;
										if(!nodeName||n.nodeName.toUpperCase()==nodeName){
											if(m=="~")
												merge[id]=true;
											r.push(n);
										}
										if(m=="+")
											break;
									}
							}
							ret=r;
							t=jQuery.trim(t.replace(re,""));
							foundToken=true;
						}
					}
					if(t&&!foundToken){
						if(!t.indexOf(",")){
							if(context==ret[0])
								ret.shift();
							done=jQuery.merge(done,ret);
							r=ret=[context];
							t=" "+t.substr(1,t.length);
						}else{
							var re2=quickID;
							var m=re2.exec(t);
							if(m){
								m=[0,m[2],m[3],m[1]];
							}else{
								re2=quickClass;
								m=re2.exec(t);
							}
							m[2]=m[2].replace(/\\/g,"");
							var elem=ret[ret.length-1];
							if(m[1]=="#"&&elem&&elem.getElementById&&!jQuery.isXMLDoc(elem)){
								var oid=elem.getElementById(m[2]);
								if((jQuery.browser.msie||jQuery.browser.opera)&&oid&&typeof oid.id=="string"&&oid.id!=m[2])
									oid=jQuery('[@id="'+m[2]+'"]',elem)[0];
								ret=r=oid&&(!m[3]||jQuery.nodeName(oid,m[3]))?[oid]:[];
							}else{
								for(var i=0;ret[i];i++){
									var tag=m[1]=="#"&&m[3]?m[3]:m[1]!=""||m[0]==""?"*":m[2];
									if(tag=="*"&&ret[i].nodeName.toLowerCase()=="object")
										tag="param";
									r=jQuery.merge(r,ret[i].getElementsByTagName(tag));
								}
								if(m[1]==".")
									r=jQuery.classFilter(r,m[2]);
								if(m[1]=="#"){
									var tmp=[];
									for(var i=0;r[i];i++)
										if(r[i].getAttribute("id")==m[2]){
											tmp=[r[i]];
											break;
										}
									r=tmp;
								}
								ret=r;
							}
							t=t.replace(re2,"");
						}
					}
					if(t){
						var val=jQuery.filter(t,r);
						ret=r=val.r;
						t=jQuery.trim(val.t);
					}
				}
				if(t)
					ret=[];
				if(ret&&context==ret[0])
					ret.shift();
				done=jQuery.merge(done,ret);
				return done;
			},classFilter:function(r,m,not){
				m=" "+m+" ";
				var tmp=[];
				for(var i=0;r[i];i++){
					var pass=(" "+r[i].className+" ").indexOf(m)>=0;
					if(!not&&pass||not&&!pass)
						tmp.push(r[i]);
				}
				return tmp;
			},filter:function(t,r,not){
				var last;
				while(t&&t!=last){
					last=t;
					var p=jQuery.parse,m;
					for(var i=0;p[i];i++){
						m=p[i].exec(t);
						if(m){
							t=t.substring(m[0].length);
							m[2]=m[2].replace(/\\/g,"");
							break;
						}
					}
					if(!m)
						break;
					if(m[1]==":"&&m[2]=="not")
						r=isSimple.test(m[3])?jQuery.filter(m[3],r,true).r:jQuery(r).not(m[3]);
					else if(m[1]==".")
						r=jQuery.classFilter(r,m[2],not);
					else if(m[1]=="["){
						var tmp=[],type=m[3];
						for(var i=0,rl=r.length;i<rl;i++){
							var a=r[i],z=a[jQuery.props[m[2]]||m[2]];
							if(z==null||/href|src|selected/.test(m[2]))
								z=jQuery.attr(a,m[2])||'';
							if((type==""&&!!z||type=="="&&z==m[5]||type=="!="&&z!=m[5]||type=="^="&&z&&!z.indexOf(m[5])||type=="$="&&z.substr(z.length-m[5].length)==m[5]||(type=="*="||type=="~=")&&z.indexOf(m[5])>=0)^not)
								tmp.push(a);
						}
						r=tmp;
					}else if(m[1]==":"&&m[2]=="nth-child"){
						var merge={},tmp=[],test=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(m[3]=="even"&&"2n"||m[3]=="odd"&&"2n+1"||!/\D/.test(m[3])&&"0n+"+m[3]||m[3]),first=(test[1]+(test[2]||1))-0,last=test[3]-0;
						for(var i=0,rl=r.length;i<rl;i++){
							var node=r[i],parentNode=node.parentNode,id=jQuery.data(parentNode);
							if(!merge[id]){
								var c=1;
								for(var n=parentNode.firstChild;n;n=n.nextSibling)
									if(n.nodeType==1)
										n.nodeIndex=c++;
								merge[id]=true;
							}
							var add=false;
							if(first==0){
								if(node.nodeIndex==last)
									add=true;
							}else if((node.nodeIndex-last)%first==0&&(node.nodeIndex-last)/first>=0)
								add=true;
							if(add^not)
								tmp.push(node);
						}
						r=tmp;
					}else{
						var fn=jQuery.expr[m[1]];
						if(typeof fn=="object")
							fn=fn[m[2]];
						if(typeof fn=="string")
							fn=eval("false||function(a,i){return "+fn+";}");
						r=jQuery.grep(r,function(elem,i){
							return fn(elem,i,m,r);
						},not);
					}
				}
				return{
					r:r,t:t
				};
			},dir:function(elem,dir){
				var matched=[],cur=elem[dir];
				while(cur&&cur!=document){
					if(cur.nodeType==1)
						matched.push(cur);
					cur=cur[dir];
				}
				return matched;
			},nth:function(cur,result,dir,elem){
				result=result||1;
				var num=0;
				for(;cur;cur=cur[dir])
					if(cur.nodeType==1&&++num==result)
						break;
				return cur;
			},sibling:function(n,elem){
				var r=[];
				for(;n;n=n.nextSibling){
					if(n.nodeType==1&&n!=elem)
						r.push(n);
				}
				return r;
			}
		});
		jQuery.event={
			add:function(elem,types,handler,data){
				if(elem.nodeType==3||elem.nodeType==8)
					return;
				if(jQuery.browser.msie&&elem.setInterval)
					elem=window;
				if(!handler.guid)
					handler.guid=this.guid++;
				if(data!=undefined){
					var fn=handler;
					handler=this.proxy(fn,function(){
						return fn.apply(this,arguments);
					});
					handler.data=data;
				}
				var events=jQuery.data(elem,"events")||jQuery.data(elem,"events",{}),handle=jQuery.data(elem,"handle")||jQuery.data(elem,"handle",function(){
					if(typeof jQuery!="undefined"&&!jQuery.event.triggered)
						return jQuery.event.handle.apply(arguments.callee.elem,arguments);
				});
				handle.elem=elem;
				jQuery.each(types.split(/\s+/),function(index,type){
					var parts=type.split(".");
					type=parts[0];
					handler.type=parts[1];
					var handlers=events[type];
					if(!handlers){
						handlers=events[type]={};
						if(!jQuery.event.special[type]||jQuery.event.special[type].setup.call(elem)===false){
							if(elem.addEventListener)
								elem.addEventListener(type,handle,false);
							else if(elem.attachEvent)
								elem.attachEvent("on"+type,handle);
						}
					}
					handlers[handler.guid]=handler;
					jQuery.event.global[type]=true;
				});
				elem=null;
			},guid:1,global:{},remove:function(elem,types,handler){
				if(elem.nodeType==3||elem.nodeType==8)
					return;
				var events=jQuery.data(elem,"events"),ret,index;
				if(events){
					if(types==undefined||(typeof types=="string"&&types.charAt(0)=="."))
						for(var type in events)
							this.remove(elem,type+(types||""));
					else{
						if(types.type){
							handler=types.handler;
							types=types.type;
						}
						jQuery.each(types.split(/\s+/),function(index,type){
							var parts=type.split(".");
							type=parts[0];
							if(events[type]){
								if(handler)
									delete events[type][handler.guid];
								else
									for(handler in events[type])
										if(!parts[1]||events[type][handler].type==parts[1])
											delete events[type][handler];
								for(ret in events[type])
									break;
								if(!ret){
									if(!jQuery.event.special[type]||jQuery.event.special[type].teardown.call(elem)===false){
										if(elem.removeEventListener)
											elem.removeEventListener(type,jQuery.data(elem,"handle"),false);
										else if(elem.detachEvent)
											elem.detachEvent("on"+type,jQuery.data(elem,"handle"));
									}
									ret=null;
									delete events[type];
								}
							}
						});
					}
					for(ret in events)
						break;
					if(!ret){
						var handle=jQuery.data(elem,"handle");
						if(handle)
							handle.elem=null;
						jQuery.removeData(elem,"events");
						jQuery.removeData(elem,"handle");
					}
				}
			},trigger:function(type,data,elem,donative,extra){
				data=jQuery.makeArray(data);
				if(type.indexOf("!")>=0){
					type=type.slice(0,-1);
					var exclusive=true;
				}
				if(!elem){
					if(this.global[type])
						jQuery("*").add([window,document]).trigger(type,data);
				}else{
					if(elem.nodeType==3||elem.nodeType==8)
						return undefined;
					var val,ret,fn=jQuery.isFunction(elem[type]||null),event=!data[0]||!data[0].preventDefault;
					if(event){
						data.unshift({
							type:type,target:elem,preventDefault:function(){},stopPropagation:function(){},timeStamp:now()
						});
						data[0][expando]=true;
					}
					data[0].type=type;
					if(exclusive)
						data[0].exclusive=true;
					var handle=jQuery.data(elem,"handle");
					if(handle)
						val=handle.apply(elem,data);
					if((!fn||(jQuery.nodeName(elem,'a')&&type=="click"))&&elem["on"+type]&&elem["on"+type].apply(elem,data)===false)
						val=false;
					if(event)
						data.shift();
					if(extra&&jQuery.isFunction(extra)){
						ret=extra.apply(elem,val==null?data:data.concat(val));
						if(ret!==undefined)
							val=ret;
					}
					if(fn&&donative!==false&&val!==false&&!(jQuery.nodeName(elem,'a')&&type=="click")){
						this.triggered=true;
						try{
							elem[type]();
						}
						catch(e){}
					}
					this.triggered=false;
				}
				return val;
			},handle:function(event){
				var val,ret,namespace,all,handlers;
				event=arguments[0]=jQuery.event.fix(event||window.event);
				namespace=event.type.split(".");
				event.type=namespace[0];
				namespace=namespace[1];
				all=!namespace&&!event.exclusive;
				handlers=(jQuery.data(this,"events")||{})[event.type];
				for(var j in handlers){
					var handler=handlers[j];
					if(all||handler.type==namespace){
						event.handler=handler;
						event.data=handler.data;
						ret=handler.apply(this,arguments);
						if(val!==false)
							val=ret;
						if(ret===false){
							event.preventDefault();
							event.stopPropagation();
						}
					}
				}
				return val;
			},fix:function(event){
				if(event[expando]==true)
					return event;
				var originalEvent=event;
				event={originalEvent:originalEvent};
				var props="altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target timeStamp toElement type view wheelDelta which".split(" ");
				for(var i=props.length;i;i--)
					event[props[i]]=originalEvent[props[i]];
				event[expando]=true;
				event.preventDefault=function(){
					if(originalEvent.preventDefault)
						originalEvent.preventDefault();
					originalEvent.returnValue=false;
				};
				event.stopPropagation=function(){
					if(originalEvent.stopPropagation)
						originalEvent.stopPropagation();
					originalEvent.cancelBubble=true;
				};
				event.timeStamp=event.timeStamp||now();
				if(!event.target)
					event.target=event.srcElement||document;
				if(event.target.nodeType==3)
					event.target=event.target.parentNode;
				if(!event.relatedTarget&&event.fromElement)
					event.relatedTarget=event.fromElement==event.target?event.toElement:event.fromElement;
				if(event.pageX==null&&event.clientX!=null){
					var doc=document.documentElement,body=document.body;
					event.pageX=event.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc.clientLeft||0);
					event.pageY=event.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc.clientTop||0);
				}
				if(!event.which&&((event.charCode||event.charCode===0)?event.charCode:event.keyCode))
					event.which=event.charCode||event.keyCode;
				if(!event.metaKey&&event.ctrlKey)
					event.metaKey=event.ctrlKey;
				if(!event.which&&event.button)
					event.which=(event.button&1?1:(event.button&2?3:(event.button&4?2:0)));
				return event;
			},proxy:function(fn,proxy){
				proxy.guid=fn.guid=fn.guid||proxy.guid||this.guid++;
				return proxy;
			},special:{
				ready:{
					setup:function(){
						bindReady();
						return;
					},teardown:function(){
						return;
					}
				},mouseenter:{
					setup:function(){
						if(jQuery.browser.msie)
							return false;
						jQuery(this).bind("mouseover",jQuery.event.special.mouseenter.handler);
						return true;
					},teardown:function(){
						if(jQuery.browser.msie)
							return false;
						jQuery(this).unbind("mouseover",jQuery.event.special.mouseenter.handler);
						return true;
					},handler:function(event){
						if(withinElement(event,this))
							return true;
						event.type="mouseenter";
						return jQuery.event.handle.apply(this,arguments);
					}
				},mouseleave:{
					setup:function(){
						if(jQuery.browser.msie)
							return false;
						jQuery(this).bind("mouseout",jQuery.event.special.mouseleave.handler);
						return true;
					},teardown:function(){
						if(jQuery.browser.msie)
							return false;
						jQuery(this).unbind("mouseout",jQuery.event.special.mouseleave.handler);
						return true;
					},handler:function(event){
						if(withinElement(event,this))
							return true;
						event.type="mouseleave";
						return jQuery.event.handle.apply(this,arguments);
					}
				}
			}
		};
		jQuery.fn.extend({
			bind:function(type,data,fn){
				return type=="unload"?this.one(type,data,fn):this.each(function(){
					jQuery.event.add(this,type,fn||data,fn&&data);
				});
			},one:function(type,data,fn){
				var one=jQuery.event.proxy(fn||data,function(event){
					jQuery(this).unbind(event,one);
					return(fn||data).apply(this,arguments);
				});
				return this.each(function(){
					jQuery.event.add(this,type,one,fn&&data);
				});
			},unbind:function(type,fn){
				return this.each(function(){
					jQuery.event.remove(this,type,fn);
				});
			},trigger:function(type,data,fn){
				return this.each(function(){
					jQuery.event.trigger(type,data,this,true,fn);
				});
			},triggerHandler:function(type,data,fn){
				return this[0]&&jQuery.event.trigger(type,data,this[0],false,fn);
			},toggle:function(fn){
				var args=arguments,i=1;
				while(i<args.length)
					jQuery.event.proxy(fn,args[i++]);
				return this.click(jQuery.event.proxy(fn,function(event){
					this.lastToggle=(this.lastToggle||0)%i;
					event.preventDefault();
					return args[this.lastToggle++].apply(this,arguments)||false;
				}));
			},hover:function(fnOver,fnOut){
				return this.bind('mouseenter',fnOver).bind('mouseleave',fnOut);
			},ready:function(fn){
				bindReady();
				if(jQuery.isReady)
					fn.call(document,jQuery);
				else
					jQuery.readyList.push(function(){
						return fn.call(this,jQuery);
					});
					return this;
			}
		});
		jQuery.extend({
			isReady:false,readyList:[],ready:function(){
				if(!jQuery.isReady){
					jQuery.isReady=true;
					if(jQuery.readyList){
						jQuery.each(jQuery.readyList,function(){
							this.call(document);
						});
						jQuery.readyList=null;
					}
					jQuery(document).triggerHandler("ready");
				}
			}
		});
		var readyBound=false;
		function bindReady(){
			if(readyBound)
				return;
			readyBound=true;
			if(document.addEventListener&&!jQuery.browser.opera)
				document.addEventListener("DOMContentLoaded",jQuery.ready,false);
			if(jQuery.browser.msie&&window==top)
				(function(){
					if(jQuery.isReady)
						return;
					try{
						document.documentElement.doScroll("left");
					}
					catch(error){
						setTimeout(arguments.callee,0);
						return;
					}
					jQuery.ready();
				})();
			if(jQuery.browser.opera)
				document.addEventListener("DOMContentLoaded",function(){
					if(jQuery.isReady)
						return;
					for(var i=0;i<document.styleSheets.length;i++)
						if(document.styleSheets[i].disabled){
							setTimeout(arguments.callee,0);
							return;
						}
					jQuery.ready();
				},false);
			if(jQuery.browser.safari){
				var numStyles;
				(function(){
					if(jQuery.isReady)
						return;
					if(document.readyState!="loaded"&&document.readyState!="complete"){
						setTimeout(arguments.callee,0);
						return;
					}
					if(numStyles===undefined)
						numStyles=jQuery("style, link[rel=stylesheet]").length;
					if(document.styleSheets.length!=numStyles){
						setTimeout(arguments.callee,0);
						return;
					}
					jQuery.ready();
				})();
			}
			jQuery.event.add(window,"load",jQuery.ready);
		}
		jQuery.each(("blur,focus,load,resize,scroll,unload,click,dblclick,"+"mousedown,mouseup,mousemove,mouseover,mouseout,change,select,"+"submit,keydown,keypress,keyup,error").split(","),function(i,name){
			jQuery.fn[name]=function(fn){
				return fn?this.bind(name,fn):this.trigger(name);
			};
		});
		var withinElement=function(event,elem){
			var parent=event.relatedTarget;
			while(parent&&parent!=elem)
				try{
					parent=parent.parentNode;
				}
				catch(error){
					parent=elem;
				}
				return parent==elem;
		};
		jQuery(window).bind("unload",function(){jQuery("*").add(document).unbind();
	});
	jQuery.fn.extend({
		_load:jQuery.fn.load,load:function(url,params,callback){
			if(typeof url!='string')
				return this._load(url);
			var off=url.indexOf(" ");
			if(off>=0){
				var selector=url.slice(off,url.length);
				url=url.slice(0,off);
			}
			callback=callback||function(){};
			var type="GET";
			if(params)
				if(jQuery.isFunction(params)){
					callback=params;
					params=null;
				}else{
					params=jQuery.param(params);
					type="POST";
				}
			var self=this;
			jQuery.ajax({
				url:url,type:type,dataType:"html",data:params,complete:function(res,status){
					if(status=="success"||status=="notmodified")
						self.html(selector?jQuery("<div/>").append(res.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(selector):res.responseText);
					self.each(callback,[res.responseText,status,res]);
				}
			});
			return this;
		},serialize:function(){
			return jQuery.param(this.serializeArray());
		},serializeArray:function(){
			return this.map(function(){
				return jQuery.nodeName(this,"form")?jQuery.makeArray(this.elements):this;
			}).filter(function(){
				return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password/i.test(this.type));
			}).map(function(i,elem){
				var val=jQuery(this).val();
				return val==null?null:val.constructor==Array?jQuery.map(val,function(val,i){
					return{
						name:elem.name,value:val
					};
				}):{name:elem.name,value:val};
			}).get();
		}
	});
	jQuery.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(i,o){
		jQuery.fn[o]=function(f){
			return this.bind(o,f);
		};
	});
	var jsc=now();
	jQuery.extend({
		get:function(url,data,callback,type){
			if(jQuery.isFunction(data)){
				callback=data;
				data=null;
			}
			return jQuery.ajax({
				type:"GET",url:url,data:data,success:callback,dataType:type
			});
		},getScript:function(url,callback){
			return jQuery.get(url,null,callback,"script");
		},getJSON:function(url,data,callback){
			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,data:data,success:callback,dataType:type
			});
		},ajaxSetup:function(settings){
			jQuery.extend(jQuery.ajaxSettings,settings);
		},ajaxSettings:{
			url:location.href,global:true,type:"GET",timeout:0,contentType:"application/x-www-form-urlencoded",processData:true,async:true,data:null,username:null,password:null,accepts:{
				xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"
			}
		},lastModified:{},ajax:function(s){
			s=jQuery.extend(true,s,jQuery.extend(true,{},jQuery.ajaxSettings,s));
			var jsonp,jsre=/=\?(&|$)/g,status,data,type=s.type.toUpperCase();
			if(s.data&&s.processData&&typeof s.data!="string")
				s.data=jQuery.param(s.data);
			if(s.dataType=="jsonp"){
				if(type=="GET"){
					if(!s.url.match(jsre))
						s.url+=(s.url.match(/\?/)?"&":"?")+(s.jsonp||"callback")+"=?";
				}else if(!s.data||!s.data.match(jsre))
					s.data=(s.data?s.data+"&":"")+(s.jsonp||"callback")+"=?";
				s.dataType="json";
			}
			if(s.dataType=="json"&&(s.data&&s.data.match(jsre)||s.url.match(jsre))){
				jsonp="jsonp"+jsc++;
				if(s.data)
					s.data=(s.data+"").replace(jsre,"="+jsonp+"$1");
				s.url=s.url.replace(jsre,"="+jsonp+"$1");
				s.dataType="script";
				window[jsonp]=function(tmp){
					data=tmp;
					success();
					complete();
					window[jsonp]=undefined;
					try{
						delete window[jsonp];
					}
					catch(e){}
					if(head)
						head.removeChild(script);
				};
			}
			if(s.dataType=="script"&&s.cache==null)
				s.cache=false;
			if(s.cache===false&&type=="GET"){
				var ts=now();
				var ret=s.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+ts+"$2");
				s.url=ret+((ret==s.url)?(s.url.match(/\?/)?"&":"?")+"_="+ts:"");
			}
			if(s.data&&type=="GET"){
				s.url+=(s.url.match(/\?/)?"&":"?")+s.data;
				s.data=null;
			}
			if(s.global&&!jQuery.active++)
				jQuery.event.trigger("ajaxStart");
			var remote=/^(?:\w+:)?\/\/([^\/?#]+)/;
			if(s.dataType=="script"&&type=="GET"&&remote.test(s.url)&&remote.exec(s.url)[1]!=location.host){
				var head=document.getElementsByTagName("head")[0];
				var script=document.createElement("script");
				script.src=s.url;
				if(s.scriptCharset)
					script.charset=s.scriptCharset;
				if(!jsonp){
					var done=false;
					script.onload=script.onreadystatechange=function(){
						if(!done&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){
							done=true;
							success();
							complete();
							head.removeChild(script);
						}
					};
				}
				head.appendChild(script);
				return undefined;
			}
			var requestDone=false;
			var xhr=window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();
			if(s.username)
				xhr.open(type,s.url,s.async,s.username,s.password);
			else
				xhr.open(type,s.url,s.async);
			try{
				if(s.data)
					xhr.setRequestHeader("Content-Type",s.contentType);
				if(s.ifModified)
					xhr.setRequestHeader("If-Modified-Since",jQuery.lastModified[s.url]||"Thu, 01 Jan 1970 00:00:00 GMT");
				xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");
				xhr.setRequestHeader("Accept",s.dataType&&s.accepts[s.dataType]?s.accepts[s.dataType]+", */*":s.accepts._default);
			}
			catch(e){}
			if(s.beforeSend&&s.beforeSend(xhr,s)===false){
				s.global&&jQuery.active--;
				xhr.abort();
				return false;
			}
			if(s.global)
				jQuery.event.trigger("ajaxSend",[xhr,s]);
			var onreadystatechange=function(isTimeout){
				if(!requestDone&&xhr&&(xhr.readyState==4||isTimeout=="timeout")){
					requestDone=true;
					if(ival){
						clearInterval(ival);
						ival=null;
					}
					status=isTimeout=="timeout"&&"timeout"||!jQuery.httpSuccess(xhr)&&"error"||s.ifModified&&jQuery.httpNotModified(xhr,s.url)&&"notmodified"||"success";
					if(status=="success"){
						try{
							data=jQuery.httpData(xhr,s.dataType,s.dataFilter);
						}
						catch(e){
							status="parsererror";
						}
					}
					if(status=="success"){
						var modRes;
						try{
							modRes=xhr.getResponseHeader("Last-Modified");
						}
						catch(e){}
						if(s.ifModified&&modRes)
							jQuery.lastModified[s.url]=modRes;
						if(!jsonp)
							success();
					}else
						jQuery.handleError(s,xhr,status);
					complete();
					if(s.async)
						xhr=null;
				}
			};
			if(s.async){
				var ival=setInterval(onreadystatechange,13);
				if(s.timeout>0)
					setTimeout(function(){
						if(xhr){
							xhr.abort();
							if(!requestDone)
								onreadystatechange("timeout");
						}
					},s.timeout);
			}
			try{
				xhr.send(s.data);
			}
			catch(e){
				jQuery.handleError(s,xhr,null,e);
			}
			if(!s.async)
				onreadystatechange();
			function success(){
				if(s.success)
					s.success(data,status);
				if(s.global)
					jQuery.event.trigger("ajaxSuccess",[xhr,s]);
			}
			function complete(){
				if(s.complete)
					s.complete(xhr,status);
					if(s.global)
						jQuery.event.trigger("ajaxComplete",[xhr,s]);
					if(s.global&&!--jQuery.active)
						jQuery.event.trigger("ajaxStop");
			}
			return xhr;
		},handleError:function(s,xhr,status,e){
			if(s.error)
				s.error(xhr,status,e);
			if(s.global)
				jQuery.event.trigger("ajaxError",[xhr,s,e]);
		},active:0,httpSuccess:function(xhr){
			try{
				return!xhr.status&&location.protocol=="file:"||(xhr.status>=200&&xhr.status<300)||xhr.status==304||xhr.status==1223||jQuery.browser.safari&&xhr.status==undefined;
			}
			catch(e){}
			return false;
		},httpNotModified:function(xhr,url){
			try{
				var xhrRes=xhr.getResponseHeader("Last-Modified");
				return xhr.status==304||xhrRes==jQuery.lastModified[url]||jQuery.browser.safari&&xhr.status==undefined;
			}
			catch(e){}
			return false;
		},httpData:function(xhr,type,filter){
			var ct=xhr.getResponseHeader("content-type"),xml=type=="xml"||!type&&ct&&ct.indexOf("xml")>=0,data=xml?xhr.responseXML:xhr.responseText;
			if(xml&&data.documentElement.tagName=="parsererror")
				throw"parsererror";
			if(filter)
				data=filter(data,type);
			if(type=="script")
				jQuery.globalEval(data);
			if(type=="json")
				data=eval("("+data+")");
			return data;
		},param:function(a){
			var s=[];
			if(a.constructor==Array||a.jquery)
				jQuery.each(a,function(){
					s.push(encodeURIComponent(this.name)+"="+encodeURIComponent(this.value));
				});
			else
				for(var j in a)
					if(a[j]&&a[j].constructor==Array)
						jQuery.each(a[j],function(){
							s.push(encodeURIComponent(j)+"="+encodeURIComponent(this));
						});
					else
						s.push(encodeURIComponent(j)+"="+encodeURIComponent(jQuery.isFunction(a[j])?a[j]():a[j]));
					return s.join("&").replace(/%20/g,"+");
		}
	});
	jQuery.fn.extend({
		show:function(speed,callback){
			return speed?this.animate({
				height:"show",width:"show",opacity:"show"
			},speed,callback):this.filter(":hidden").each(function(){
				this.style.display=this.oldblock||"";
				if(jQuery.css(this,"display")=="none"){
					var elem=jQuery("<"+this.tagName+" />").appendTo("body");
					this.style.display=elem.css("display");
					if(this.style.display=="none")
						this.style.display="block";
					elem.remove();
				}
			}).end();
		},hide:function(speed,callback){
			return speed?this.animate({
				height:"hide",width:"hide",opacity:"hide"
			},speed,callback):this.filter(":visible").each(function(){
				this.oldblock=this.oldblock||jQuery.css(this,"display");
				this.style.display="none";
			}).end();
		},_toggle:jQuery.fn.toggle,toggle:function(fn,fn2){
			return jQuery.isFunction(fn)&&jQuery.isFunction(fn2)?this._toggle.apply(this,arguments):fn?this.animate({
				height:"toggle",width:"toggle",opacity:"toggle"
			},fn,fn2):this.each(function(){
				jQuery(this)[jQuery(this).is(":hidden")?"show":"hide"]();
			});
		},slideDown:function(speed,callback){
			return this.animate({
				height:"show"
			},speed,callback);
		},slideUp:function(speed,callback){
			return this.animate({
				height:"hide"
			},speed,callback);
		},slideToggle:function(speed,callback){
			return this.animate({
				height:"toggle"
			},speed,callback);
		},fadeIn:function(speed,callback){
			return this.animate({
				opacity:"show"
			},speed,callback);
		},fadeOut:function(speed,callback){
			return this.animate({
				opacity:"hide"
			},speed,callback);
		},fadeTo:function(speed,to,callback){
			return this.animate({
				opacity:to
			},speed,callback);
		},animate:function(prop,speed,easing,callback){
			var optall=jQuery.speed(speed,easing,callback);
			return this[optall.queue===false?"each":"queue"](function(){
				if(this.nodeType!=1)
					return false;
				var opt=jQuery.extend({},optall),p,hidden=jQuery(this).is(":hidden"),self=this;
				for(p in prop){
					if(prop[p]=="hide"&&hidden||prop[p]=="show"&&!hidden)
						return opt.complete.call(this);
					if(p=="height"||p=="width"){
						opt.display=jQuery.css(this,"display");
						opt.overflow=this.style.overflow;
					}
				}
				if(opt.overflow!=null)
					this.style.overflow="hidden";
				opt.curAnim=jQuery.extend({},prop);
				jQuery.each(prop,function(name,val){
					var e=new jQuery.fx(self,opt,name);
					if(/toggle|show|hide/.test(val))
						e[val=="toggle"?hidden?"show":"hide":val](prop);
					else{
						var parts=val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),start=e.cur(true)||0;
						if(parts){
							var end=parseFloat(parts[2]),unit=parts[3]||"px";if(unit!="px"){
								self.style[name]=(end||1)+unit;
								start=((end||1)/e.cur(true))*start;
								self.style[name]=start+unit;
							}
							if(parts[1])
								end=((parts[1]=="-="?-1:1)*end)+start;
							e.custom(start,end,unit);
						}else
							e.custom(start,val,"");
					}
				});
				return true;
			});
		},queue:function(type,fn){
			if(jQuery.isFunction(type)||(type&&type.constructor==Array)){
				fn=type;
				type="fx";
			}
			if(!type||(typeof type=="string"&&!fn))
				return queue(this[0],type);
			return this.each(function(){
				if(fn.constructor==Array)
					queue(this,type,fn);
				else{
					queue(this,type).push(fn);
					if(queue(this,type).length==1)
						fn.call(this);
				}
			});
		},stop:function(clearQueue,gotoEnd){
			var timers=jQuery.timers;
			if(clearQueue)
				this.queue([]);
			this.each(function(){
				for(var i=timers.length-1;i>=0;i--)
					if(timers[i].elem==this){
						if(gotoEnd)
							timers[i](true);
						timers.splice(i,1);
					}
			});
			if(!gotoEnd)
				this.dequeue();
			return this;
		}
	});
	var queue=function(elem,type,array){
		if(elem){
			type=type||"fx";
			var q=jQuery.data(elem,type+"queue");
			if(!q||array)
				q=jQuery.data(elem,type+"queue",jQuery.makeArray(array));
		}
		return q;
	};
	jQuery.fn.dequeue=function(type){
		type=type||"fx";
		return this.each(function(){
			var q=queue(this,type);
			q.shift();
			if(q.length)
				q[0].call(this);
		});
	};
	jQuery.extend({
		speed:function(speed,easing,fn){
			var opt=speed&&speed.constructor==Object?speed:{
				complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&easing.constructor!=Function&&easing
			};
			opt.duration=(opt.duration&&opt.duration.constructor==Number?opt.duration:jQuery.fx.speeds[opt.duration])||jQuery.fx.speeds.def;
			opt.old=opt.complete;
			opt.complete=function(){
				if(opt.queue!==false)
					jQuery(this).dequeue();
				if(jQuery.isFunction(opt.old))
					opt.old.call(this);
			};
			return opt;
		},easing:{
			linear:function(p,n,firstNum,diff){
				return firstNum+diff*p;
			},swing:function(p,n,firstNum,diff){
				return((-Math.cos(p*Math.PI)/2)+0.5)*diff+firstNum;
			}
		},timers:[],timerId:null,fx:function(elem,options,prop){
			this.options=options;
			this.elem=elem;
			this.prop=prop;
			if(!options.orig)
				options.orig={};
		}
	});
	jQuery.fx.prototype={
		update:function(){
			if(this.options.step)
				this.options.step.call(this.elem,this.now,this);
			(jQuery.fx.step[this.prop]||jQuery.fx.step._default)(this);
			if(this.prop=="height"||this.prop=="width")
				this.elem.style.display="block";
		},cur:function(force){
			if(this.elem[this.prop]!=null&&this.elem.style[this.prop]==null)
				return this.elem[this.prop];
			var r=parseFloat(jQuery.css(this.elem,this.prop,force));
			return r&&r>-10000?r:parseFloat(jQuery.curCSS(this.elem,this.prop))||0;
		},custom:function(from,to,unit){
			this.startTime=now();
			this.start=from;
			this.end=to;
			this.unit=unit||this.unit||"px";
			this.now=this.start;
			this.pos=this.state=0;
			this.update();
			var self=this;
			function t(gotoEnd){
				return self.step(gotoEnd);
			}
			t.elem=this.elem;
			jQuery.timers.push(t);
			if(jQuery.timerId==null){
				jQuery.timerId=setInterval(function(){
					var timers=jQuery.timers;
					for(var i=0;i<timers.length;i++)
						if(!timers[i]())
							timers.splice(i--,1);
					if(!timers.length){
						clearInterval(jQuery.timerId);
						jQuery.timerId=null;
					}
				},13);
			}
		},show:function(){
			this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);
			this.options.show=true;
			this.custom(0,this.cur());
			if(this.prop=="width"||this.prop=="height")
				this.elem.style[this.prop]="1px";
			jQuery(this.elem).show();
		},hide:function(){
			this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);
			this.options.hide=true;
			this.custom(this.cur(),0);
		},step:function(gotoEnd){
			var t=now();
			if(gotoEnd||t>this.options.duration+this.startTime){
				this.now=this.end;
				this.pos=this.state=1;
				this.update();
				this.options.curAnim[this.prop]=true;
				var done=true;
				for(var i in this.options.curAnim)
					if(this.options.curAnim[i]!==true)
						done=false;
				if(done){
					if(this.options.display!=null){
						this.elem.style.overflow=this.options.overflow;
						this.elem.style.display=this.options.display;
						if(jQuery.css(this.elem,"display")=="none")
							this.elem.style.display="block";
					}
					if(this.options.hide)
						this.elem.style.display="none";
					if(this.options.hide||this.options.show)
						for(var p in this.options.curAnim)
							jQuery.attr(this.elem.style,p,this.options.orig[p]);
				}
				if(done)
					this.options.complete.call(this.elem);
				return false;
			}else{
				var n=t-this.startTime;
				this.state=n/this.options.duration;
				this.pos=jQuery.easing[this.options.easing||(jQuery.easing.swing?"swing":"linear")](this.state,n,0,1,this.options.duration);
				this.now=this.start+((this.end-this.start)*this.pos);
				this.update();
			}
			return true;
		}
	};
	jQuery.extend(jQuery.fx,{
		speeds:{
			slow:600,fast:200,def:400
		},step:{
			scrollLeft:function(fx){
				fx.elem.scrollLeft=fx.now;
			},scrollTop:function(fx){
				fx.elem.scrollTop=fx.now;
			},opacity:function(fx){
				jQuery.attr(fx.elem.style,"opacity",fx.now);
			},_default:function(fx){
				fx.elem.style[fx.prop]=fx.now+fx.unit;
			}
		}
	});
	jQuery.fn.offset=function(){
		var left=0,top=0,elem=this[0],results;
		if(elem)
			with(jQuery.browser){
				var parent=elem.parentNode,offsetChild=elem,offsetParent=elem.offsetParent,doc=elem.ownerDocument,safari2=safari&&parseInt(version)<522&&!/adobeair/i.test(userAgent),css=jQuery.curCSS,fixed=css(elem,"position")=="fixed";
				if(elem.getBoundingClientRect){
					var box=elem.getBoundingClientRect();
					add(box.left+Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),box.top+Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));
					add(-doc.documentElement.clientLeft,-doc.documentElement.clientTop);
				}else{
					add(elem.offsetLeft,elem.offsetTop);
					while(offsetParent){
						add(offsetParent.offsetLeft,offsetParent.offsetTop);
						if(mozilla&&!/^t(able|d|h)$/i.test(offsetParent.tagName)||safari&&!safari2)
							border(offsetParent);
						if(!fixed&&css(offsetParent,"position")=="fixed")
							fixed=true;
						offsetChild=/^body$/i.test(offsetParent.tagName)?offsetChild:offsetParent;
						offsetParent=offsetParent.offsetParent;
					}
					while(parent&&parent.tagName&&!/^body|html$/i.test(parent.tagName)){
						if(!/^inline|table.*$/i.test(css(parent,"display")))
							add(-parent.scrollLeft,-parent.scrollTop);
						if(mozilla&&css(parent,"overflow")!="visible")
							border(parent);
						parent=parent.parentNode;
					}
					if((safari2&&(fixed||css(offsetChild,"position")=="absolute"))||(mozilla&&css(offsetChild,"position")!="absolute"))
						add(-doc.body.offsetLeft,-doc.body.offsetTop);
					if(fixed)
						add(Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));
				}
				results={
					top:top,left:left
				};
			}
		function border(elem){
			add(jQuery.curCSS(elem,"borderLeftWidth",true),jQuery.curCSS(elem,"borderTopWidth",true));
		}
		function add(l,t){
			left+=parseInt(l,10)||0;
			top+=parseInt(t,10)||0;
		}
		return results;
	};
	jQuery.fn.extend({
		position:function(){
			var left=0,top=0,results;
			if(this[0]){
				var offsetParent=this.offsetParent(),offset=this.offset(),parentOffset=/^body|html$/i.test(offsetParent[0].tagName)?{top:0,left:0}:offsetParent.offset();
				offset.top-=num(this,'marginTop');
				offset.left-=num(this,'marginLeft');
				parentOffset.top+=num(offsetParent,'borderTopWidth');
				parentOffset.left+=num(offsetParent,'borderLeftWidth');
				results={top:offset.top-parentOffset.top,left:offset.left-parentOffset.left};
			}
			return results;
		},offsetParent:function(){
			var offsetParent=this[0].offsetParent;
			while(offsetParent&&(!/^body|html$/i.test(offsetParent.tagName)&&jQuery.css(offsetParent,'position')=='static'))
				offsetParent=offsetParent.offsetParent;
			return jQuery(offsetParent);
		}
	});
	jQuery.each(['Left','Top'],function(i,name){
		var method='scroll'+name;
		jQuery.fn[method]=function(val){
			if(!this[0])
				return;
			return val!=undefined?this.each(function(){
				this==window||this==document?window.scrollTo(!i?val:jQuery(window).scrollLeft(),i?val:jQuery(window).scrollTop()):this[method]=val;
			}):this[0]==window||this[0]==document?self[i?'pageYOffset':'pageXOffset']||jQuery.boxModel&&document.documentElement[method]||document.body[method]:this[0][method];
		};
	});
	jQuery.each(["Height","Width"],function(i,name){
		var tl=i?"Left":"Top",br=i?"Right":"Bottom";jQuery.fn["inner"+name]=function(){
			return this[name.toLowerCase()]()+num(this,"padding"+tl)+num(this,"padding"+br);
		};
		jQuery.fn["outer"+name]=function(margin){
			return this["inner"+name]()+num(this,"border"+tl+"Width")+num(this,"border"+br+"Width")+(margin?num(this,"margin"+tl)+num(this,"margin"+br):0);
		};
	});
})();
