/*
 * 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);
    };

});
})();
