




/* cQuery est jQuery, renommee pour eviter tout conflit */


(function(){
var
window=this,
undefined,
_cQuery=window.cQuery,
_$=window.$,
cQuery=window.cQuery=window.$=function(selector,context){
return new cQuery.fn.init(selector,context)},
quickExpr=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,
isSimple=/^.[^:#\[\.,]*$/;
cQuery.fn=cQuery.prototype={
init:function(selector,context){
selector=selector||document;
if(selector.nodeType){
this[0]=selector;
this.length=1;
this.context=selector;
return this}
if(typeof selector==="string"){
var match=quickExpr.exec(selector);
if(match&&(match[1]||!context)){
if(match[1])
selector=cQuery.clean([match[1]],context);
else{
var elem=document.getElementById(match[3]);
if(elem&&elem.id!=match[3])
return cQuery().find(selector);
var ret=cQuery(elem||[]);
ret.context=document;
ret.selector=selector;
return ret}
}else
return cQuery(context).find(selector)}else if(cQuery.isFunction(selector))
return cQuery(document).ready(selector);
if(selector.selector&&selector.context){
this.selector=selector.selector;
this.context=selector.context}
return this.setArray(cQuery.isArray(selector)?
selector:
cQuery.makeArray(selector))},
selector:"",
jquery:"1.3.2",
size:function(){
return this.length},
get:function(num){
return num===undefined?
Array.prototype.slice.call(this):
this[num]},
pushStack:function(elems,name,selector){
var ret=cQuery(elems);
ret.prevObject=this;
ret.context=this.context;
if(name==="find")
ret.selector=this.selector+(this.selector?" ":"")+selector;
else if(name)
ret.selector=this.selector+"."+name+"("+selector+")";
return ret},
setArray:function(elems){
this.length=0;
Array.prototype.push.apply(this,elems);
return this},
each:function(callback,args){
return cQuery.each(this,callback,args)},
index:function(elem){
return cQuery.inArray(
elem&&elem.jquery?elem[0]:elem
,this)},
attr:function(name,value,type){
var options=name;
if(typeof name==="string")
if(value===undefined)
return this[0]&&cQuery[type||"attr"](this[0],name);
else{
options={};
options[name]=value}
return this.each(function(i){
for(name in options)
cQuery.attr(
type?
this.style:
this,
name,cQuery.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="";
cQuery.each(text||this,function(){
cQuery.each(this.childNodes,function(){
if(this.nodeType!=8)
ret+=this.nodeType!=1?
this.nodeValue:
cQuery.fn.text([this])})});
return ret},
wrapAll:function(html){
if(this[0]){
var wrap=cQuery(html,this[0].ownerDocument).clone();
if(this[0].parentNode)
wrap.insertBefore(this[0]);
wrap.map(function(){
var elem=this;
while(elem.firstChild)
elem=elem.firstChild;
return elem}).append(this)}
return this},
wrapInner:function(html){
return this.each(function(){
cQuery(this).contents().wrapAll(html)})},
wrap:function(html){
return this.each(function(){
cQuery(this).wrapAll(html)})},
append:function(){
return this.domManip(arguments,true,function(elem){
if(this.nodeType==1)
this.appendChild(elem)})},
prepend:function(){
return this.domManip(arguments,true,function(elem){
if(this.nodeType==1)
this.insertBefore(elem,this.firstChild)})},
before:function(){
return this.domManip(arguments,false,function(elem){
this.parentNode.insertBefore(elem,this)})},
after:function(){
return this.domManip(arguments,false,function(elem){
this.parentNode.insertBefore(elem,this.nextSibling)})},
end:function(){
return this.prevObject||cQuery([])},
push:[].push,
sort:[].sort,
splice:[].splice,
find:function(selector){
if(this.length===1){
var ret=this.pushStack([],"find",selector);
ret.length=0;
cQuery.find(selector,this[0],ret);
return ret}else{
return this.pushStack(cQuery.unique(cQuery.map(this,function(elem){
return cQuery.find(selector,elem)})),"find",selector)}
},
clone:function(events){
var ret=this.map(function(){
if(!cQuery.support.noCloneEvent&&!cQuery.isXMLDoc(this)){
var html=this.outerHTML;
if(!html){
var div=this.ownerDocument.createElement("div");
div.appendChild(this.cloneNode(true));
html=div.innerHTML}
return cQuery.clean([html.replace(/ cQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else
return this.cloneNode(true)});
if(events===true){
var orig=this.find("*").andSelf(),i=0;
ret.find("*").andSelf().each(function(){
if(this.nodeName!==orig[i].nodeName)
return;
var events=cQuery.data(orig[i],"events");
for(var type in events){
for(var handler in events[type]){
cQuery.event.add(this,type,events[type][handler],events[type][handler].data)}
}
i++})}
return ret},
filter:function(selector){
return this.pushStack(
cQuery.isFunction(selector)&&
cQuery.grep(this,function(elem,i){
return selector.call(elem,i)})||
cQuery.multiFilter(selector,cQuery.grep(this,function(elem){
return elem.nodeType===1})),"filter",selector)},
closest:function(selector){
var pos=cQuery.expr.match.POS.test(selector)?cQuery(selector):null,
closer=0;
return this.map(function(){
var cur=this;
while(cur&&cur.ownerDocument){
if(pos?pos.index(cur)>-1:cQuery(cur).is(selector)){
cQuery.data(cur,"closest",closer);
return cur}
cur=cur.parentNode;
closer++}
})},
not:function(selector){
if(typeof selector==="string")
if(isSimple.test(selector))
return this.pushStack(cQuery.multiFilter(selector,this,true),"not",selector);
else
selector=cQuery.multiFilter(selector,this);
var isArrayLike=selector.length&&selector[selector.length-1]!==undefined&&!selector.nodeType;
return this.filter(function(){
return isArrayLike?cQuery.inArray(this,selector)<0:this!=selector})},
add:function(selector){
return this.pushStack(cQuery.unique(cQuery.merge(
this.get(),
typeof selector==="string"?
cQuery(selector):
cQuery.makeArray(selector)
)))},
is:function(selector){
return!!selector&&cQuery.multiFilter(selector,this).length>0},
hasClass:function(selector){
return!!selector&&this.is("."+selector)},
val:function(value){
if(value===undefined){
var elem=this[0];
if(elem){
if(cQuery.nodeName(elem,'option'))
return(elem.attributes.value||{}).specified?elem.value:elem.text;
if(cQuery.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=cQuery(option).val();
if(one)
return value;
values.push(value)}
}
return values}
return(elem.value||"").replace(/\r/g,"")}
return undefined}
if(typeof value==="number")
value+='';
return this.each(function(){
if(this.nodeType!=1)
return;
if(cQuery.isArray(value)&&/radio|checkbox/.test(this.type))
this.checked=(cQuery.inArray(this.value,value)>=0||
cQuery.inArray(this.name,value)>=0);
else if(cQuery.nodeName(this,"select")){
var values=cQuery.makeArray(value);
cQuery("option",this).each(function(){
this.selected=(cQuery.inArray(this.value,values)>=0||
cQuery.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.replace(/ cQuery\d+="(?:\d+|null)"/g,""):
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),
"slice",Array.prototype.slice.call(arguments).join(","))},
map:function(callback){
return this.pushStack(cQuery.map(this,function(elem,i){
return callback.call(elem,i,elem)}))},
andSelf:function(){
return this.add(this.prevObject)},
domManip:function(args,table,callback){
if(this[0]){
var fragment=(this[0].ownerDocument||this[0]).createDocumentFragment(),
scripts=cQuery.clean(args,(this[0].ownerDocument||this[0]),fragment),
first=fragment.firstChild;
if(first)
for(var i=0,l=this.length;i<l;i++)
callback.call(root(this[i],first),this.length>1||i>0?
fragment.cloneNode(true):fragment);
if(scripts)
cQuery.each(scripts,evalScript)}
return this;
function root(elem,cur){
return table&&cQuery.nodeName(elem,"table")&&cQuery.nodeName(cur,"tr")?
(elem.getElementsByTagName("tbody")[0]||
elem.appendChild(elem.ownerDocument.createElement("tbody"))):
elem}
}
};
cQuery.fn.init.prototype=cQuery.fn;
function evalScript(i,elem){
if(elem.src)
cQuery.ajax({
url:elem.src,
async:false,
dataType:"script"
});
else
cQuery.globalEval(elem.text||elem.textContent||elem.innerHTML||"");
if(elem.parentNode)
elem.parentNode.removeChild(elem)}
function now(){
return+new Date}
cQuery.extend=cQuery.fn.extend=function(){
var target=arguments[0]||{},i=1,length=arguments.length,deep=false,options;
if(typeof target==="boolean"){
deep=target;
target=arguments[1]||{};
i=2}
if(typeof target!=="object"&&!cQuery.isFunction(target))
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]=cQuery.extend(deep,
src||(copy.length!=null?[]:{})
,copy);
else if(copy!==undefined)
target[name]=copy}
return target};
var exclude=/z-?index|font-?weight|opacity|zoom|line-?height/i,
defaultView=document.defaultView||{},
toString=Object.prototype.toString;
cQuery.extend({
noConflict:function(deep){
window.$=_$;
if(deep)
window.cQuery=_cQuery;
return cQuery},
isFunction:function(obj){
return toString.call(obj)==="[object Function]"},
isArray:function(obj){
return toString.call(obj)==="[object Array]"},
isXMLDoc:function(elem){
return elem.nodeType===9&&elem.documentElement.nodeName!=="HTML"||
!!elem.ownerDocument&&cQuery.isXMLDoc(elem.ownerDocument)},
globalEval:function(data){
if(data&&/\S/.test(data)){
var head=document.getElementsByTagName("head")[0]||document.documentElement,
script=document.createElement("script");
script.type="text/javascript";
if(cQuery.support.scriptEval)
script.appendChild(document.createTextNode(data));
else
script.text=data;
head.insertBefore(script,head.firstChild);
head.removeChild(script)}
},
nodeName:function(elem,name){
return elem.nodeName&&elem.nodeName.toUpperCase()==name.toUpperCase()},
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(cQuery.isFunction(value))
value=value.call(elem,i);
return typeof value==="number"&&type=="curCSS"&&!exclude.test(name)?
value+"px":
value},
className:{
add:function(elem,classNames){
cQuery.each((classNames||"").split(/\s+/),function(i,className){
if(elem.nodeType==1&&!cQuery.className.has(elem.className,className))
elem.className+=(elem.className?" ":"")+className})},
remove:function(elem,classNames){
if(elem.nodeType==1)
elem.className=classNames!==undefined?
cQuery.grep(elem.className.split(/\s+/),function(className){
return!cQuery.className.has(classNames,className)}).join(" "):
""},
has:function(elem,className){
return elem&&cQuery.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,extra){
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;
if(extra==="border")
return;
cQuery.each(which,function(){
if(!extra)
val-=parseFloat(cQuery.curCSS(elem,"padding"+this,true))||0;
if(extra==="margin")
val+=parseFloat(cQuery.curCSS(elem,"margin"+this,true))||0;
else
val-=parseFloat(cQuery.curCSS(elem,"border"+this+"Width",true))||0})}
if(elem.offsetWidth!==0)
getWH();
else
cQuery.swap(elem,props,getWH);
return Math.max(0,Math.round(val))}
return cQuery.curCSS(elem,name,force)},
curCSS:function(elem,name,force){
var ret,style=elem.style;
if(name=="opacity"&&!cQuery.support.opacity){
ret=cQuery.attr(style,"opacity");
return ret==""?
"1":
ret}
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)
ret=computedStyle.getPropertyValue(name);
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,fragment){
context=context||document;
if(typeof context.createElement==="undefined")
context=context.ownerDocument||context[0]&&context[0].ownerDocument||document;
if(!fragment&&elems.length===1&&typeof elems[0]==="string"){
var match=/^<(\w+)\s*\/?>$/.exec(elems[0]);
if(match)
return[context.createElement(match[1])]}
var ret=[],scripts=[],div=context.createElement("div");
cQuery.each(elems,function(i,elem){
if(typeof elem==="number")
elem+='';
if(!elem)
return;
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=elem.replace(/^\s+/,"").substring(0,10).toLowerCase();
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>"]||
!cQuery.support.htmlSerialize&&
[1,"div<div>","</div>"]||
[0,"",""];
div.innerHTML=wrap[1]+elem+wrap[2];
while(wrap[0]--)
div=div.lastChild;
if(!cQuery.support.tbody){
var hasBody=/<tbody/i.test(elem),
tbody=!tags.indexOf("<table")&&!hasBody?
div.firstChild&&div.firstChild.childNodes:
wrap[1]=="<table>"&&!hasBody?
div.childNodes:
[];
for(var j=tbody.length-1;j>=0;--j)
if(cQuery.nodeName(tbody[j],"tbody")&&!tbody[j].childNodes.length)
tbody[j].parentNode.removeChild(tbody[j])}
if(!cQuery.support.leadingWhitespace&&/^\s/.test(elem))
div.insertBefore(context.createTextNode(elem.match(/^\s*/)[0]),div.firstChild);
elem=cQuery.makeArray(div.childNodes)}
if(elem.nodeType)
ret.push(elem);
else
ret=cQuery.merge(ret,elem)});
if(fragment){
for(var i=0;ret[i];i++){
if(cQuery.nodeName(ret[i],"script")&&(!ret[i].type||ret[i].type.toLowerCase()==="text/javascript")){
scripts.push(ret[i].parentNode?ret[i].parentNode.removeChild(ret[i]):ret[i])}else{
if(ret[i].nodeType===1)
ret.splice.apply(ret,[i+1,0].concat(cQuery.makeArray(ret[i].getElementsByTagName("script"))));
fragment.appendChild(ret[i])}
}
return scripts}
return ret},
attr:function(elem,name,value){
if(!elem||elem.nodeType==3||elem.nodeType==8)
return undefined;
var notxml=!cQuery.isXMLDoc(elem),
set=value!==undefined;
name=notxml&&cQuery.props[name]||name;
if(elem.tagName){
var special=/href|src|style/.test(name);
if(name=="selected"&&elem.parentNode)
elem.parentNode.selectedIndex;
if(name in elem&&notxml&&!special){
if(set){
if(name=="type"&&cQuery.nodeName(elem,"input")&&elem.parentNode)
throw"type property can't be changed";
elem[name]=value}
if(cQuery.nodeName(elem,"form")&&elem.getAttributeNode(name))
return elem.getAttributeNode(name).nodeValue;
if(name=="tabIndex"){
var attributeNode=elem.getAttributeNode("tabIndex");
return attributeNode&&attributeNode.specified
?attributeNode.value
:elem.nodeName.match(/(button|input|object|select|textarea)/i)
?0
:elem.nodeName.match(/^(a|area)$/i)&&elem.href
?0
:undefined}
return elem[name]}
if(!cQuery.support.style&&notxml&&name=="style")
return cQuery.attr(elem.style,"cssText",value);
if(set)
elem.setAttribute(name,""+value);
var attr=!cQuery.support.hrefNormalized&&notxml&&special
?elem.getAttribute(name,2)
:elem.getAttribute(name);
return attr===null?undefined:attr}
if(!cQuery.support.opacity&&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||typeof array==="string"||cQuery.isFunction(array)||array.setInterval)
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(!cQuery.support.getAll){
while((elem=second[i++])!=null)
if(elem.nodeType!=8)
first[pos++]=elem}else
while((elem=second[i++])!=null)
first[pos++]=elem;
return first},
unique:function(array){
var ret=[],done={};
try{
for(var i=0,length=array.length;i<length;i++){
var id=cQuery.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();
cQuery.browser={
version:(userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[0,'0'])[1],
safari:/webkit/.test(userAgent),
opera:/opera/.test(userAgent),
msie:/msie/.test(userAgent)&&!/opera/.test(userAgent),
mozilla:/mozilla/.test(userAgent)&&!/(compatible|webkit)/.test(userAgent)
};
cQuery.each({
parent:function(elem){return elem.parentNode},
parents:function(elem){return cQuery.dir(elem,"parentNode")},
next:function(elem){return cQuery.nth(elem,2,"nextSibling")},
prev:function(elem){return cQuery.nth(elem,2,"previousSibling")},
nextAll:function(elem){return cQuery.dir(elem,"nextSibling")},
prevAll:function(elem){return cQuery.dir(elem,"previousSibling")},
siblings:function(elem){return cQuery.sibling(elem.parentNode.firstChild,elem)},
children:function(elem){return cQuery.sibling(elem.firstChild)},
contents:function(elem){return cQuery.nodeName(elem,"iframe")?elem.contentDocument||elem.contentWindow.document:cQuery.makeArray(elem.childNodes)}
},function(name,fn){
cQuery.fn[name]=function(selector){
var ret=cQuery.map(this,fn);
if(selector&&typeof selector=="string")
ret=cQuery.multiFilter(selector,ret);
return this.pushStack(cQuery.unique(ret),name,selector)}});
cQuery.each({
appendTo:"append",
prependTo:"prepend",
insertBefore:"before",
insertAfter:"after",
replaceAll:"replaceWith"
},function(name,original){
cQuery.fn[name]=function(selector){
var ret=[],insert=cQuery(selector);
for(var i=0,l=insert.length;i<l;i++){
var elems=(i>0?this.clone(true):this).get();
cQuery.fn[original].apply(cQuery(insert[i]),elems);
ret=ret.concat(elems)}
return this.pushStack(ret,name,selector)}});
cQuery.each({
removeAttr:function(name){
cQuery.attr(this,name,"");
if(this.nodeType==1)
this.removeAttribute(name)},
addClass:function(classNames){
cQuery.className.add(this,classNames)},
removeClass:function(classNames){
cQuery.className.remove(this,classNames)},
toggleClass:function(classNames,state){
if(typeof state!=="boolean")
state=!cQuery.className.has(this,classNames);
cQuery.className[state?"add":"remove"](this,classNames)},
remove:function(selector){
if(!selector||cQuery.filter(selector,[this]).length){
cQuery("*",this).add([this]).each(function(){
cQuery.event.remove(this);
cQuery.removeData(this)});
if(this.parentNode)
this.parentNode.removeChild(this)}
},
empty:function(){
cQuery(this).children().remove();
while(this.firstChild)
this.removeChild(this.firstChild)}
},function(name,fn){
cQuery.fn[name]=function(){
return this.each(fn,arguments)}});
function num(elem,prop){
return elem[0]&&parseInt(cQuery.curCSS(elem[0],prop,true),10)||0}
var expando="cQuery"+now(),uuid=0,windowData={};
cQuery.extend({
cache:{},
data:function(elem,name,data){
elem=elem==window?
windowData:
elem;
var id=elem[expando];
if(!id)
id=elem[expando]=++uuid;
if(name&&!cQuery.cache[id])
cQuery.cache[id]={};
if(data!==undefined)
cQuery.cache[id][name]=data;
return name?
cQuery.cache[id][name]:
id},
removeData:function(elem,name){
elem=elem==window?
windowData:
elem;
var id=elem[expando];
if(name){
if(cQuery.cache[id]){
delete cQuery.cache[id][name];
name="";
for(name in cQuery.cache[id])
break;
if(!name)
cQuery.removeData(elem)}
}else{
try{
delete elem[expando]}catch(e){
if(elem.removeAttribute)
elem.removeAttribute(expando)}
delete cQuery.cache[id]}
},
queue:function(elem,type,data){
if(elem){
type=(type||"fx")+"queue";
var q=cQuery.data(elem,type);
if(!q||cQuery.isArray(data))
q=cQuery.data(elem,type,cQuery.makeArray(data));
else if(data)
q.push(data)}
return q},
dequeue:function(elem,type){
var queue=cQuery.queue(elem,type),
fn=queue.shift();
if(!type||type==="fx")
fn=queue[0];
if(fn!==undefined)
fn.call(elem)}
});
cQuery.fn.extend({
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=cQuery.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(){
cQuery.data(this,key,value)})},
removeData:function(key){
return this.each(function(){
cQuery.removeData(this,key)})},
queue:function(type,data){
if(typeof type!=="string"){
data=type;
type="fx"}
if(data===undefined)
return cQuery.queue(this[0],type);
return this.each(function(){
var queue=cQuery.queue(this,type,data);
if(type=="fx"&&queue.length==1)
queue[0].call(this)})},
dequeue:function(type){
return this.each(function(){
cQuery.dequeue(this,type)})}
});
(function(){
var chunker=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,
done=0,
toString=Object.prototype.toString;
var Sizzle=function(selector,context,results,seed){
results=results||[];
context=context||document;
if(context.nodeType!==1&&context.nodeType!==9)
return[];
if(!selector||typeof selector!=="string"){
return results}
var parts=[],m,set,checkSet,check,mode,extra,prune=true;
chunker.lastIndex=0;
while((m=chunker.exec(selector))!==null){
parts.push(m[1]);
if(m[2]){
extra=RegExp.rightContext;
break}
}
if(parts.length>1&&origPOS.exec(selector)){
if(parts.length===2&&Expr.relative[parts[0]]){
set=posProcess(parts[0]+parts[1],context)}else{
set=Expr.relative[parts[0]]?
[context]:
Sizzle(parts.shift(),context);
while(parts.length){
selector=parts.shift();
if(Expr.relative[selector])
selector+=parts.shift();
set=posProcess(selector,set)}
}
}else{
var ret=seed?
{expr:parts.pop(),set:makeArray(seed)}:
Sizzle.find(parts.pop(),parts.length===1&&context.parentNode?context.parentNode:context,isXML(context));
set=Sizzle.filter(ret.expr,ret.set);
if(parts.length>0){
checkSet=makeArray(set)}else{
prune=false}
while(parts.length){
var cur=parts.pop(),pop=cur;
if(!Expr.relative[cur]){
cur=""}else{
pop=parts.pop()}
if(pop==null){
pop=context}
Expr.relative[cur](checkSet,pop,isXML(context))}
}
if(!checkSet){
checkSet=set}
if(!checkSet){
throw"Syntax error, unrecognized expression: "+(cur||selector)}
if(toString.call(checkSet)==="[object Array]"){
if(!prune){
results.push.apply(results,checkSet)}else if(context.nodeType===1){
for(var i=0;checkSet[i]!=null;i++){
if(checkSet[i]&&(checkSet[i]===true||checkSet[i].nodeType===1&&contains(context,checkSet[i]))){
results.push(set[i])}
}
}else{
for(var i=0;checkSet[i]!=null;i++){
if(checkSet[i]&&checkSet[i].nodeType===1){
results.push(set[i])}
}
}
}else{
makeArray(checkSet,results)}
if(extra){
Sizzle(extra,context,results,seed);
if(sortOrder){
hasDuplicate=false;
results.sort(sortOrder);
if(hasDuplicate){
for(var i=1;i<results.length;i++){
if(results[i]===results[i-1]){
results.splice(i--,1)}
}
}
}
}
return results};
Sizzle.matches=function(expr,set){
return Sizzle(expr,null,null,set)};
Sizzle.find=function(expr,context,isXML){
var set,match;
if(!expr){
return[]}
for(var i=0,l=Expr.order.length;i<l;i++){
var type=Expr.order[i],match;
if((match=Expr.match[type].exec(expr))){
var left=RegExp.leftContext;
if(left.substr(left.length-1)!=="\\"){
match[1]=(match[1]||"").replace(/\\/g,"");
set=Expr.find[type](match,context,isXML);
if(set!=null){
expr=expr.replace(Expr.match[type],"");
break}
}
}
}
if(!set){
set=context.getElementsByTagName("*")}
return{set:set,expr:expr}};
Sizzle.filter=function(expr,set,inplace,not){
var old=expr,result=[],curLoop=set,match,anyFound,
isXMLFilter=set&&set[0]&&isXML(set[0]);
while(expr&&set.length){
for(var type in Expr.filter){
if((match=Expr.match[type].exec(expr))!=null){
var filter=Expr.filter[type],found,item;
anyFound=false;
if(curLoop==result){
result=[]}
if(Expr.preFilter[type]){
match=Expr.preFilter[type](match,curLoop,inplace,result,not,isXMLFilter);
if(!match){
anyFound=found=true}else if(match===true){
continue}
}
if(match){
for(var i=0;(item=curLoop[i])!=null;i++){
if(item){
found=filter(item,match,i,curLoop);
var pass=not^!!found;
if(inplace&&found!=null){
if(pass){
anyFound=true}else{
curLoop[i]=false}
}else if(pass){
result.push(item);
anyFound=true}
}
}
}
if(found!==undefined){
if(!inplace){
curLoop=result}
expr=expr.replace(Expr.match[type],"");
if(!anyFound){
return[]}
break}
}
}
if(expr==old){
if(anyFound==null){
throw"Syntax error, unrecognized expression: "+expr}else{
break}
}
old=expr}
return curLoop};
var Expr=Sizzle.selectors={
order:["ID","NAME","TAG"],
match:{
ID:/#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,
CLASS:/\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,
NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,
ATTR:/\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,
TAG:/^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,
CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,
POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,
PSEUDO:/:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/
},
attrMap:{
"class":"className",
"for":"htmlFor"
},
attrHandle:{
href:function(elem){
return elem.getAttribute("href")}
},
relative:{
"+":function(checkSet,part,isXML){
var isPartStr=typeof part==="string",
isTag=isPartStr&&!/\W/.test(part),
isPartStrNotTag=isPartStr&&!isTag;
if(isTag&&!isXML){
part=part.toUpperCase()}
for(var i=0,l=checkSet.length,elem;i<l;i++){
if((elem=checkSet[i])){
while((elem=elem.previousSibling)&&elem.nodeType!==1){}
checkSet[i]=isPartStrNotTag||elem&&elem.nodeName===part?
elem||false:
elem===part}
}
if(isPartStrNotTag){
Sizzle.filter(part,checkSet,true)}
},
">":function(checkSet,part,isXML){
var isPartStr=typeof part==="string";
if(isPartStr&&!/\W/.test(part)){
part=isXML?part:part.toUpperCase();
for(var i=0,l=checkSet.length;i<l;i++){
var elem=checkSet[i];
if(elem){
var parent=elem.parentNode;
checkSet[i]=parent.nodeName===part?parent:false}
}
}else{
for(var i=0,l=checkSet.length;i<l;i++){
var elem=checkSet[i];
if(elem){
checkSet[i]=isPartStr?
elem.parentNode:
elem.parentNode===part}
}
if(isPartStr){
Sizzle.filter(part,checkSet,true)}
}
},
"":function(checkSet,part,isXML){
var doneName=done++,checkFn=dirCheck;
if(!part.match(/\W/)){
var nodeCheck=part=isXML?part:part.toUpperCase();
checkFn=dirNodeCheck}
checkFn("parentNode",part,doneName,checkSet,nodeCheck,isXML)},
"~":function(checkSet,part,isXML){
var doneName=done++,checkFn=dirCheck;
if(typeof part==="string"&&!part.match(/\W/)){
var nodeCheck=part=isXML?part:part.toUpperCase();
checkFn=dirNodeCheck}
checkFn("previousSibling",part,doneName,checkSet,nodeCheck,isXML)}
},
find:{
ID:function(match,context,isXML){
if(typeof context.getElementById!=="undefined"&&!isXML){
var m=context.getElementById(match[1]);
return m?[m]:[]}
},
NAME:function(match,context,isXML){
if(typeof context.getElementsByName!=="undefined"){
var ret=[],results=context.getElementsByName(match[1]);
for(var i=0,l=results.length;i<l;i++){
if(results[i].getAttribute("name")===match[1]){
ret.push(results[i])}
}
return ret.length===0?null:ret}
},
TAG:function(match,context){
return context.getElementsByTagName(match[1])}
},
preFilter:{
CLASS:function(match,curLoop,inplace,result,not,isXML){
match=" "+match[1].replace(/\\/g,"")+" ";
if(isXML){
return match}
for(var i=0,elem;(elem=curLoop[i])!=null;i++){
if(elem){
if(not^(elem.className&&(" "+elem.className+" ").indexOf(match)>=0)){
if(!inplace)
result.push(elem)}else if(inplace){
curLoop[i]=false}
}
}
return false},
ID:function(match){
return match[1].replace(/\\/g,"")},
TAG:function(match,curLoop){
for(var i=0;curLoop[i]===false;i++){}
return curLoop[i]&&isXML(curLoop[i])?match[1]:match[1].toUpperCase()},
CHILD:function(match){
if(match[1]=="nth"){
var test=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(
match[2]=="even"&&"2n"||match[2]=="odd"&&"2n+1"||
!/\D/.test(match[2])&&"0n+"+match[2]||match[2]);
match[2]=(test[1]+(test[2]||1))-0;
match[3]=test[3]-0}
match[0]=done++;
return match},
ATTR:function(match,curLoop,inplace,result,not,isXML){
var name=match[1].replace(/\\/g,"");
if(!isXML&&Expr.attrMap[name]){
match[1]=Expr.attrMap[name]}
if(match[2]==="~="){
match[4]=" "+match[4]+" "}
return match},
PSEUDO:function(match,curLoop,inplace,result,not){
if(match[1]==="not"){
if(match[3].match(chunker).length>1||/^\w/.test(match[3])){
match[3]=Sizzle(match[3],null,null,curLoop)}else{
var ret=Sizzle.filter(match[3],curLoop,inplace,true^not);
if(!inplace){
result.push.apply(result,ret)}
return false}
}else if(Expr.match.POS.test(match[0])||Expr.match.CHILD.test(match[0])){
return true}
return match},
POS:function(match){
match.unshift(true);
return match}
},
filters:{
enabled:function(elem){
return elem.disabled===false&&elem.type!=="hidden"},
disabled:function(elem){
return elem.disabled===true},
checked:function(elem){
return elem.checked===true},
selected:function(elem){
elem.parentNode.selectedIndex;
return elem.selected===true},
parent:function(elem){
return!!elem.firstChild},
empty:function(elem){
return!elem.firstChild},
has:function(elem,i,match){
return!!Sizzle(match[3],elem).length},
header:function(elem){
return/h\d/i.test(elem.nodeName)},
text:function(elem){
return"text"===elem.type},
radio:function(elem){
return"radio"===elem.type},
checkbox:function(elem){
return"checkbox"===elem.type},
file:function(elem){
return"file"===elem.type},
password:function(elem){
return"password"===elem.type},
submit:function(elem){
return"submit"===elem.type},
image:function(elem){
return"image"===elem.type},
reset:function(elem){
return"reset"===elem.type},
button:function(elem){
return"button"===elem.type||elem.nodeName.toUpperCase()==="BUTTON"},
input:function(elem){
return/input|select|textarea|button/i.test(elem.nodeName)}
},
setFilters:{
first:function(elem,i){
return i===0},
last:function(elem,i,match,array){
return i===array.length-1},
even:function(elem,i){
return i%2===0},
odd:function(elem,i){
return i%2===1},
lt:function(elem,i,match){
return i<match[3]-0},
gt:function(elem,i,match){
return i>match[3]-0},
nth:function(elem,i,match){
return match[3]-0==i},
eq:function(elem,i,match){
return match[3]-0==i}
},
filter:{
PSEUDO:function(elem,match,i,array){
var name=match[1],filter=Expr.filters[name];
if(filter){
return filter(elem,i,match,array)}else if(name==="contains"){
return(elem.textContent||elem.innerText||"").indexOf(match[3])>=0}else if(name==="not"){
var not=match[3];
for(var i=0,l=not.length;i<l;i++){
if(not[i]===elem){
return false}
}
return true}
},
CHILD:function(elem,match){
var type=match[1],node=elem;
switch(type){
case'only':
case'first':
while(node=node.previousSibling){
if(node.nodeType===1)return false}
if(type=='first')return true;
node=elem;
case'last':
while(node=node.nextSibling){
if(node.nodeType===1)return false}
return true;
case'nth':
var first=match[2],last=match[3];
if(first==1&&last==0){
return true}
var doneName=match[0],
parent=elem.parentNode;
if(parent&&(parent.sizcache!==doneName||!elem.nodeIndex)){
var count=0;
for(node=parent.firstChild;node;node=node.nextSibling){
if(node.nodeType===1){
node.nodeIndex=++count}
}
parent.sizcache=doneName}
var diff=elem.nodeIndex-last;
if(first==0){
return diff==0}else{
return(diff%first==0&&diff/first>=0)}
}
},
ID:function(elem,match){
return elem.nodeType===1&&elem.getAttribute("id")===match},
TAG:function(elem,match){
return(match==="*"&&elem.nodeType===1)||elem.nodeName===match},
CLASS:function(elem,match){
return(" "+(elem.className||elem.getAttribute("class"))+" ")
.indexOf(match)>-1},
ATTR:function(elem,match){
var name=match[1],
result=Expr.attrHandle[name]?
Expr.attrHandle[name](elem):
elem[name]!=null?
elem[name]:
elem.getAttribute(name),
value=result+"",
type=match[2],
check=match[4];
return result==null?
type==="!=":
type==="="?
value===check:
type==="*="?
value.indexOf(check)>=0:
type==="~="?
(" "+value+" ").indexOf(check)>=0:
!check?
value&&result!==false:
type==="!="?
value!=check:
type==="^="?
value.indexOf(check)===0:
type==="$="?
value.substr(value.length-check.length)===check:
type==="|="?
value===check||value.substr(0,check.length+1)===check+"-":
false},
POS:function(elem,match,i,array){
var name=match[2],filter=Expr.setFilters[name];
if(filter){
return filter(elem,i,match,array)}
}
}
};
var origPOS=Expr.match.POS;
for(var type in Expr.match){
Expr.match[type]=RegExp(Expr.match[type].source+/(?![^\[]*\])(?![^\(]*\))/.source)}
var makeArray=function(array,results){
array=Array.prototype.slice.call(array);
if(results){
results.push.apply(results,array);
return results}
return array};
try{
Array.prototype.slice.call(document.documentElement.childNodes)}catch(e){
makeArray=function(array,results){
var ret=results||[];
if(toString.call(array)==="[object Array]"){
Array.prototype.push.apply(ret,array)}else{
if(typeof array.length==="number"){
for(var i=0,l=array.length;i<l;i++){
ret.push(array[i])}
}else{
for(var i=0;array[i];i++){
ret.push(array[i])}
}
}
return ret}}
var sortOrder;
if(document.documentElement.compareDocumentPosition){
sortOrder=function(a,b){
var ret=a.compareDocumentPosition(b)&4?-1:a===b?0:1;
if(ret===0){
hasDuplicate=true}
return ret}}else if("sourceIndex"in document.documentElement){
sortOrder=function(a,b){
var ret=a.sourceIndex-b.sourceIndex;
if(ret===0){
hasDuplicate=true}
return ret}}else if(document.createRange){
sortOrder=function(a,b){
var aRange=a.ownerDocument.createRange(),bRange=b.ownerDocument.createRange();
aRange.selectNode(a);
aRange.collapse(true);
bRange.selectNode(b);
bRange.collapse(true);
var ret=aRange.compareBoundaryPoints(Range.START_TO_END,bRange);
if(ret===0){
hasDuplicate=true}
return ret}}
(function(){
var form=document.createElement("form"),
id="script"+(new Date).getTime();
form.innerHTML="<input name='"+id+"'/>";
var root=document.documentElement;
root.insertBefore(form,root.firstChild);
if(!!document.getElementById(id)){
Expr.find.ID=function(match,context,isXML){
if(typeof context.getElementById!=="undefined"&&!isXML){
var m=context.getElementById(match[1]);
return m?m.id===match[1]||typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id").nodeValue===match[1]?[m]:undefined:[]}
};
Expr.filter.ID=function(elem,match){
var node=typeof elem.getAttributeNode!=="undefined"&&elem.getAttributeNode("id");
return elem.nodeType===1&&node&&node.nodeValue===match}}
root.removeChild(form)})();
(function(){
var div=document.createElement("div");
div.appendChild(document.createComment(""));
if(div.getElementsByTagName("*").length>0){
Expr.find.TAG=function(match,context){
var results=context.getElementsByTagName(match[1]);
if(match[1]==="*"){
var tmp=[];
for(var i=0;results[i];i++){
if(results[i].nodeType===1){
tmp.push(results[i])}
}
results=tmp}
return results}}
div.innerHTML="<a href='#'></a>";
if(div.firstChild&&typeof div.firstChild.getAttribute!=="undefined"&&
div.firstChild.getAttribute("href")!=="#"){
Expr.attrHandle.href=function(elem){
return elem.getAttribute("href",2)}}
})();
if(document.querySelectorAll)(function(){
var oldSizzle=Sizzle,div=document.createElement("div");
div.innerHTML="<p class='TEST'></p>";
if(div.querySelectorAll&&div.querySelectorAll(".TEST").length===0){
return}
Sizzle=function(query,context,extra,seed){
context=context||document;
if(!seed&&context.nodeType===9&&!isXML(context)){
try{
return makeArray(context.querySelectorAll(query),extra)}catch(e){}
}
return oldSizzle(query,context,extra,seed)};
Sizzle.find=oldSizzle.find;
Sizzle.filter=oldSizzle.filter;
Sizzle.selectors=oldSizzle.selectors;
Sizzle.matches=oldSizzle.matches})();
if(document.getElementsByClassName&&document.documentElement.getElementsByClassName)(function(){
var div=document.createElement("div");
div.innerHTML="<div class='test e'></div><div class='test'></div>";
if(div.getElementsByClassName("e").length===0)
return;
div.lastChild.className="e";
if(div.getElementsByClassName("e").length===1)
return;
Expr.order.splice(1,0,"CLASS");
Expr.find.CLASS=function(match,context,isXML){
if(typeof context.getElementsByClassName!=="undefined"&&!isXML){
return context.getElementsByClassName(match[1])}
}})();
function dirNodeCheck(dir,cur,doneName,checkSet,nodeCheck,isXML){
var sibDir=dir=="previousSibling"&&!isXML;
for(var i=0,l=checkSet.length;i<l;i++){
var elem=checkSet[i];
if(elem){
if(sibDir&&elem.nodeType===1){
elem.sizcache=doneName;
elem.sizset=i}
elem=elem[dir];
var match=false;
while(elem){
if(elem.sizcache===doneName){
match=checkSet[elem.sizset];
break}
if(elem.nodeType===1&&!isXML){
elem.sizcache=doneName;
elem.sizset=i}
if(elem.nodeName===cur){
match=elem;
break}
elem=elem[dir]}
checkSet[i]=match}
}
}
function dirCheck(dir,cur,doneName,checkSet,nodeCheck,isXML){
var sibDir=dir=="previousSibling"&&!isXML;
for(var i=0,l=checkSet.length;i<l;i++){
var elem=checkSet[i];
if(elem){
if(sibDir&&elem.nodeType===1){
elem.sizcache=doneName;
elem.sizset=i}
elem=elem[dir];
var match=false;
while(elem){
if(elem.sizcache===doneName){
match=checkSet[elem.sizset];
break}
if(elem.nodeType===1){
if(!isXML){
elem.sizcache=doneName;
elem.sizset=i}
if(typeof cur!=="string"){
if(elem===cur){
match=true;
break}
}else if(Sizzle.filter(cur,[elem]).length>0){
match=elem;
break}
}
elem=elem[dir]}
checkSet[i]=match}
}
}
var contains=document.compareDocumentPosition?function(a,b){
return a.compareDocumentPosition(b)&16}:function(a,b){
return a!==b&&(a.contains?a.contains(b):true)};
var isXML=function(elem){
return elem.nodeType===9&&elem.documentElement.nodeName!=="HTML"||
!!elem.ownerDocument&&isXML(elem.ownerDocument)};
var posProcess=function(selector,context){
var tmpSet=[],later="",match,
root=context.nodeType?[context]:context;
while((match=Expr.match.PSEUDO.exec(selector))){
later+=match[0];
selector=selector.replace(Expr.match.PSEUDO,"")}
selector=Expr.relative[selector]?selector+"*":selector;
for(var i=0,l=root.length;i<l;i++){
Sizzle(selector,root[i],tmpSet)}
return Sizzle.filter(later,tmpSet)};
cQuery.find=Sizzle;
cQuery.filter=Sizzle.filter;
cQuery.expr=Sizzle.selectors;
cQuery.expr[":"]=cQuery.expr.filters;
Sizzle.selectors.filters.hidden=function(elem){
return elem.offsetWidth===0||elem.offsetHeight===0};
Sizzle.selectors.filters.visible=function(elem){
return elem.offsetWidth>0||elem.offsetHeight>0};
Sizzle.selectors.filters.animated=function(elem){
return cQuery.grep(cQuery.timers,function(fn){
return elem===fn.elem}).length};
cQuery.multiFilter=function(expr,elems,not){
if(not){
expr=":not("+expr+")"}
return Sizzle.matches(expr,elems)};
cQuery.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};
cQuery.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};
cQuery.sibling=function(n,elem){
var r=[];
for(;n;n=n.nextSibling){
if(n.nodeType==1&&n!=elem)
r.push(n)}
return r};
return;
window.Sizzle=Sizzle})();
cQuery.event={
add:function(elem,types,handler,data){
if(elem.nodeType==3||elem.nodeType==8)
return;
if(elem.setInterval&&elem!=window)
elem=window;
if(!handler.guid)
handler.guid=this.guid++;
if(data!==undefined){
var fn=handler;
handler=this.proxy(fn);
handler.data=data}
var events=cQuery.data(elem,"events")||cQuery.data(elem,"events",{}),
handle=cQuery.data(elem,"handle")||cQuery.data(elem,"handle",function(){
return typeof cQuery!=="undefined"&&!cQuery.event.triggered?
cQuery.event.handle.apply(arguments.callee.elem,arguments):
undefined});
handle.elem=elem;
cQuery.each(types.split(/\s+/),function(index,type){
var namespaces=type.split(".");
type=namespaces.shift();
handler.type=namespaces.slice().sort().join(".");
var handlers=events[type];
if(cQuery.event.specialAll[type])
cQuery.event.specialAll[type].setup.call(elem,data,namespaces);
if(!handlers){
handlers=events[type]={};
if(!cQuery.event.special[type]||cQuery.event.special[type].setup.call(elem,data,namespaces)===false){
if(elem.addEventListener)
elem.addEventListener(type,handle,false);
else if(elem.attachEvent)
elem.attachEvent("on"+type,handle)}
}
handlers[handler.guid]=handler;
cQuery.event.global[type]=true});
elem=null},
guid:1,
global:{},
remove:function(elem,types,handler){
if(elem.nodeType==3||elem.nodeType==8)
return;
var events=cQuery.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}
cQuery.each(types.split(/\s+/),function(index,type){
var namespaces=type.split(".");
type=namespaces.shift();
var namespace=RegExp("(^|\\.)"+namespaces.slice().sort().join(".*\\.")+"(\\.|$)");
if(events[type]){
if(handler)
delete events[type][handler.guid];
else
for(var handle in events[type])
if(namespace.test(events[type][handle].type))
delete events[type][handle];
if(cQuery.event.specialAll[type])
cQuery.event.specialAll[type].teardown.call(elem,namespaces);
for(ret in events[type])break;
if(!ret){
if(!cQuery.event.special[type]||cQuery.event.special[type].teardown.call(elem,namespaces)===false){
if(elem.removeEventListener)
elem.removeEventListener(type,cQuery.data(elem,"handle"),false);
else if(elem.detachEvent)
elem.detachEvent("on"+type,cQuery.data(elem,"handle"))}
ret=null;
delete events[type]}
}
})}
for(ret in events)break;
if(!ret){
var handle=cQuery.data(elem,"handle");
if(handle)handle.elem=null;
cQuery.removeData(elem,"events");
cQuery.removeData(elem,"handle")}
}
},
trigger:function(event,data,elem,bubbling){
var type=event.type||event;
if(!bubbling){
event=typeof event==="object"?
event[expando]?event:
cQuery.extend(cQuery.Event(type),event):
cQuery.Event(type);
if(type.indexOf("!")>=0){
event.type=type=type.slice(0,-1);
event.exclusive=true}
if(!elem){
event.stopPropagation();
if(this.global[type])
cQuery.each(cQuery.cache,function(){
if(this.events&&this.events[type])
cQuery.event.trigger(event,data,this.handle.elem)})}
if(!elem||elem.nodeType==3||elem.nodeType==8)
return undefined;
event.result=undefined;
event.target=elem;
data=cQuery.makeArray(data);
data.unshift(event)}
event.currentTarget=elem;
var handle=cQuery.data(elem,"handle");
if(handle)
handle.apply(elem,data);
if((!elem[type]||(cQuery.nodeName(elem,'a')&&type=="click"))&&elem["on"+type]&&elem["on"+type].apply(elem,data)===false)
event.result=false;
if(!bubbling&&elem[type]&&!event.isDefaultPrevented()&&!(cQuery.nodeName(elem,'a')&&type=="click")){
this.triggered=true;
try{
elem[type]()}catch(e){}
}
this.triggered=false;
if(!event.isPropagationStopped()){
var parent=elem.parentNode||elem.ownerDocument;
if(parent)
cQuery.event.trigger(event,data,parent,true)}
},
handle:function(event){
var all,handlers;
event=arguments[0]=cQuery.event.fix(event||window.event);
event.currentTarget=this;
var namespaces=event.type.split(".");
event.type=namespaces.shift();
all=!namespaces.length&&!event.exclusive;
var namespace=RegExp("(^|\\.)"+namespaces.slice().sort().join(".*\\.")+"(\\.|$)");
handlers=(cQuery.data(this,"events")||{})[event.type];
for(var j in handlers){
var handler=handlers[j];
if(all||namespace.test(handler.type)){
event.handler=handler;
event.data=handler.data;
var ret=handler.apply(this,arguments);
if(ret!==undefined){
event.result=ret;
if(ret===false){
event.preventDefault();
event.stopPropagation()}
}
if(event.isImmediatePropagationStopped())
break}
}
},
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 toElement view wheelDelta which".split(" "),
fix:function(event){
if(event[expando])
return event;
var originalEvent=event;
event=cQuery.Event(originalEvent);
for(var i=this.props.length,prop;i;){
prop=this.props[--i];
event[prop]=originalEvent[prop]}
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=proxy||function(){return fn.apply(this,arguments)};
proxy.guid=fn.guid=fn.guid||proxy.guid||this.guid++;
return proxy},
special:{
ready:{
setup:bindReady,
teardown:function(){}
}
},
specialAll:{
live:{
setup:function(selector,namespaces){
cQuery.event.add(this,namespaces[0],liveHandler)},
teardown:function(namespaces){
if(namespaces.length){
var remove=0,name=RegExp("(^|\\.)"+namespaces[0]+"(\\.|$)");
cQuery.each((cQuery.data(this,"events").live||{}),function(){
if(name.test(this.type))
remove++});
if(remove<1)
cQuery.event.remove(this,namespaces[0],liveHandler)}
}
}
}
};
cQuery.Event=function(src){
if(!this.preventDefault)
return new cQuery.Event(src);
if(src&&src.type){
this.originalEvent=src;
this.type=src.type}else
this.type=src;
this.timeStamp=now();
this[expando]=true};
function returnFalse(){
return false}
function returnTrue(){
return true}
cQuery.Event.prototype={
preventDefault:function(){
this.isDefaultPrevented=returnTrue;
var e=this.originalEvent;
if(!e)
return;
if(e.preventDefault)
e.preventDefault();
e.returnValue=false},
stopPropagation:function(){
this.isPropagationStopped=returnTrue;
var e=this.originalEvent;
if(!e)
return;
if(e.stopPropagation)
e.stopPropagation();
e.cancelBubble=true},
stopImmediatePropagation:function(){
this.isImmediatePropagationStopped=returnTrue;
this.stopPropagation()},
isDefaultPrevented:returnFalse,
isPropagationStopped:returnFalse,
isImmediatePropagationStopped:returnFalse
};
var withinElement=function(event){
var parent=event.relatedTarget;
while(parent&&parent!=this)
try{parent=parent.parentNode}
catch(e){parent=this}
if(parent!=this){
event.type=event.data;
cQuery.event.handle.apply(this,arguments)}
};
cQuery.each({
mouseover:'mouseenter',
mouseout:'mouseleave'
},function(orig,fix){
cQuery.event.special[fix]={
setup:function(){
cQuery.event.add(this,orig,withinElement,fix)},
teardown:function(){
cQuery.event.remove(this,orig,withinElement)}
}});
cQuery.fn.extend({
bind:function(type,data,fn){
return type=="unload"?this.one(type,data,fn):this.each(function(){
cQuery.event.add(this,type,fn||data,fn&&data)})},
one:function(type,data,fn){
var one=cQuery.event.proxy(fn||data,function(event){
cQuery(this).unbind(event,one);
return(fn||data).apply(this,arguments)});
return this.each(function(){
cQuery.event.add(this,type,one,fn&&data)})},
unbind:function(type,fn){
return this.each(function(){
cQuery.event.remove(this,type,fn)})},
trigger:function(type,data){
return this.each(function(){
cQuery.event.trigger(type,data,this)})},
triggerHandler:function(type,data){
if(this[0]){
var event=cQuery.Event(type);
event.preventDefault();
event.stopPropagation();
cQuery.event.trigger(event,data,this[0]);
return event.result}
},
toggle:function(fn){
var args=arguments,i=1;
while(i<args.length)
cQuery.event.proxy(fn,args[i++]);
return this.click(cQuery.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.mouseenter(fnOver).mouseleave(fnOut)},
ready:function(fn){
bindReady();
if(cQuery.isReady)
fn.call(document,cQuery);
else
cQuery.readyList.push(fn);
return this},
live:function(type,fn){
var proxy=cQuery.event.proxy(fn);
proxy.guid+=this.selector+type;
cQuery(document).bind(liveConvert(type,this.selector),this.selector,proxy);
return this},
die:function(type,fn){
cQuery(document).unbind(liveConvert(type,this.selector),fn?{guid:fn.guid+this.selector+type}:null);
return this}
});
function liveHandler(event){
var check=RegExp("(^|\\.)"+event.type+"(\\.|$)"),
stop=true,
elems=[];
cQuery.each(cQuery.data(this,"events").live||[],function(i,fn){
if(check.test(fn.type)){
var elem=cQuery(event.target).closest(fn.data)[0];
if(elem)
elems.push({elem:elem,fn:fn})}
});
elems.sort(function(a,b){
return cQuery.data(a.elem,"closest")-cQuery.data(b.elem,"closest")});
cQuery.each(elems,function(){
if(this.fn.call(this.elem,event,this.fn.data)===false)
return(stop=false)});
return stop}
function liveConvert(type,selector){
return["live",type,selector.replace(/\./g,"`").replace(/ /g,"|")].join(".")}
cQuery.extend({
isReady:false,
readyList:[],
ready:function(){
if(!cQuery.isReady){
cQuery.isReady=true;
if(cQuery.readyList){
cQuery.each(cQuery.readyList,function(){
this.call(document,cQuery)});
cQuery.readyList=null}
cQuery(document).triggerHandler("ready")}
}
});
var readyBound=false;
function bindReady(){
if(readyBound)return;
readyBound=true;
if(document.addEventListener){
document.addEventListener("DOMContentLoaded",function(){
document.removeEventListener("DOMContentLoaded",arguments.callee,false);
cQuery.ready()},false)}else if(document.attachEvent){
document.attachEvent("onreadystatechange",function(){
if(document.readyState==="complete"){
document.detachEvent("onreadystatechange",arguments.callee);
cQuery.ready()}
});
if(document.documentElement.doScroll&&window==window.top)(function(){
if(cQuery.isReady)return;
try{
document.documentElement.doScroll("left")}catch(error){
setTimeout(arguments.callee,0);
return}
cQuery.ready()})()}
cQuery.event.add(window,"load",cQuery.ready)}
cQuery.each(("blur,focus,load,resize,scroll,unload,click,dblclick,"+
"mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,"+
"change,select,submit,keydown,keypress,keyup,error").split(","),function(i,name){
cQuery.fn[name]=function(fn){
return fn?this.bind(name,fn):this.trigger(name)}});
cQuery(window).bind('unload',function(){
for(var id in cQuery.cache)
if(id!=1&&cQuery.cache[id].handle)
cQuery.event.remove(cQuery.cache[id].handle.elem)});
(function(){
cQuery.support={};
var root=document.documentElement,
script=document.createElement("script"),
div=document.createElement("div"),
id="script"+(new Date).getTime();
div.style.display="none";
div.innerHTML='   <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>';
var all=div.getElementsByTagName("*"),
a=div.getElementsByTagName("a")[0];
if(!all||!all.length||!a){
return}
cQuery.support={
leadingWhitespace:div.firstChild.nodeType==3,
tbody:!div.getElementsByTagName("tbody").length,
objectAll:!!div.getElementsByTagName("object")[0]
.getElementsByTagName("*").length,
htmlSerialize:!!div.getElementsByTagName("link").length,
style:/red/.test(a.getAttribute("style")),
hrefNormalized:a.getAttribute("href")==="/a",
opacity:a.style.opacity==="0.5",
cssFloat:!!a.style.cssFloat,
scriptEval:false,
noCloneEvent:true,
boxModel:null
};
script.type="text/javascript";
try{
script.appendChild(document.createTextNode("window."+id+"=1;"))}catch(e){}
root.insertBefore(script,root.firstChild);
if(window[id]){
cQuery.support.scriptEval=true;
delete window[id]}
root.removeChild(script);
if(div.attachEvent&&div.fireEvent){
div.attachEvent("onclick",function(){
cQuery.support.noCloneEvent=false;
div.detachEvent("onclick",arguments.callee)});
div.cloneNode(true).fireEvent("onclick")}
cQuery(function(){
var div=document.createElement("div");
div.style.width=div.style.paddingLeft="1px";
document.body.appendChild(div);
cQuery.boxModel=cQuery.support.boxModel=div.offsetWidth===2;
document.body.removeChild(div).style.display='none'})})();
var styleFloat=cQuery.support.cssFloat?"cssFloat":"styleFloat";
cQuery.props={
"for":"htmlFor",
"class":"className",
"float":styleFloat,
cssFloat:styleFloat,
styleFloat:styleFloat,
readonly:"readOnly",
maxlength:"maxLength",
cellspacing:"cellSpacing",
rowspan:"rowSpan",
tabindex:"tabIndex"
};
cQuery.fn.extend({
_load:cQuery.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)}
var type="GET";
if(params)
if(cQuery.isFunction(params)){
callback=params;
params=null}else if(typeof params==="object"){
params=cQuery.param(params);
type="POST"}
var self=this;
cQuery.ajax({
url:url,
type:type,
dataType:"html",
data:params,
complete:function(res,status){
if(status=="success"||status=="notmodified")
self.html(selector?
cQuery("<div/>")
.append(res.responseText.replace(/<script(.|\s)*?\/script>/g,""))
.find(selector):
res.responseText);
if(callback)
self.each(callback,[res.responseText,status,res])}
});
return this},
serialize:function(){
return cQuery.param(this.serializeArray())},
serializeArray:function(){
return this.map(function(){
return this.elements?cQuery.makeArray(this.elements):this})
.filter(function(){
return this.name&&!this.disabled&&
(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))})
.map(function(i,elem){
var val=cQuery(this).val();
return val==null?null:
cQuery.isArray(val)?
cQuery.map(val,function(val,i){
return{name:elem.name,value:val}}):
{name:elem.name,value:val}}).get()}
});
cQuery.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(i,o){
cQuery.fn[o]=function(f){
return this.bind(o,f)}});
var jsc=now();
cQuery.extend({
get:function(url,data,callback,type){
if(cQuery.isFunction(data)){
callback=data;
data=null}
return cQuery.ajax({
type:"GET",
url:url,
data:data,
success:callback,
dataType:type
})},
getScript:function(url,callback){
return cQuery.get(url,null,callback,"script")},
getJSON:function(url,data,callback){
return cQuery.get(url,data,callback,"json")},
post:function(url,data,callback,type){
if(cQuery.isFunction(data)){
callback=data;
data={}}
return cQuery.ajax({
type:"POST",
url:url,
data:data,
success:callback,
dataType:type
})},
ajaxSetup:function(settings){
cQuery.extend(cQuery.ajaxSettings,settings)},
ajaxSettings:{
url:location.href,
global:true,
type:"GET",
contentType:"application/x-www-form-urlencoded",
processData:true,
async:true,
xhr:function(){
return window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},
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=cQuery.extend(true,s,cQuery.extend(true,{},cQuery.ajaxSettings,s));
var jsonp,jsre=/=\?(&|$)/g,status,data,
type=s.type.toUpperCase();
if(s.data&&s.processData&&typeof s.data!=="string")
s.data=cQuery.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&&!cQuery.active++)
cQuery.event.trigger("ajaxStart");
var parts=/^(\w+:)?\/\/([^\/?#]+)/.exec(s.url);
if(s.dataType=="script"&&type=="GET"&&parts
&&(parts[1]&&parts[1]!=location.protocol||parts[2]!=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();
script.onload=script.onreadystatechange=null;
head.removeChild(script)}
}}
head.appendChild(script);
return undefined}
var requestDone=false;
var xhr=s.xhr();
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",
cQuery.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){
if(s.global&&!--cQuery.active)
cQuery.event.trigger("ajaxStop");
xhr.abort();
return false}
if(s.global)
cQuery.event.trigger("ajaxSend",[xhr,s]);
var onreadystatechange=function(isTimeout){
if(xhr.readyState==0){
if(ival){
clearInterval(ival);
ival=null;
if(s.global&&!--cQuery.active)
cQuery.event.trigger("ajaxStop")}
}else if(!requestDone&&xhr&&(xhr.readyState==4||isTimeout=="timeout")){
requestDone=true;
if(ival){
clearInterval(ival);
ival=null}
status=isTimeout=="timeout"?"timeout":
!cQuery.httpSuccess(xhr)?"error":
s.ifModified&&cQuery.httpNotModified(xhr,s.url)?"notmodified":
"success";
if(status=="success"){
try{
data=cQuery.httpData(xhr,s.dataType,s)}catch(e){
status="parsererror"}
}
if(status=="success"){
var modRes;
try{
modRes=xhr.getResponseHeader("Last-Modified")}catch(e){}
if(s.ifModified&&modRes)
cQuery.lastModified[s.url]=modRes;
if(!jsonp)
success()}else
cQuery.handleError(s,xhr,status);
complete();
if(isTimeout)
xhr.abort();
if(s.async)
xhr=null}
};
if(s.async){
var ival=setInterval(onreadystatechange,13);
if(s.timeout>0)
setTimeout(function(){
if(xhr&&!requestDone)
onreadystatechange("timeout")},s.timeout)}
try{
xhr.send(s.data)}catch(e){
cQuery.handleError(s,xhr,null,e)}
if(!s.async)
onreadystatechange();
function success(){
if(s.success)
s.success(data,status);
if(s.global)
cQuery.event.trigger("ajaxSuccess",[xhr,s])}
function complete(){
if(s.complete)
s.complete(xhr,status);
if(s.global)
cQuery.event.trigger("ajaxComplete",[xhr,s]);
if(s.global&&!--cQuery.active)
cQuery.event.trigger("ajaxStop")}
return xhr},
handleError:function(s,xhr,status,e){
if(s.error)s.error(xhr,status,e);
if(s.global)
cQuery.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}catch(e){}
return false},
httpNotModified:function(xhr,url){
try{
var xhrRes=xhr.getResponseHeader("Last-Modified");
return xhr.status==304||xhrRes==cQuery.lastModified[url]}catch(e){}
return false},
httpData:function(xhr,type,s){
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(s&&s.dataFilter)
data=s.dataFilter(data,type);
if(typeof data==="string"){
if(type=="script")
cQuery.globalEval(data);
if(type=="json")
data=window["eval"]("("+data+")")}
return data},
param:function(a){
var s=[];
function add(key,value){
s[s.length]=encodeURIComponent(key)+'='+encodeURIComponent(value)};
if(cQuery.isArray(a)||a.jquery)
cQuery.each(a,function(){
add(this.name,this.value)});
else
for(var j in a)
if(cQuery.isArray(a[j]))
cQuery.each(a[j],function(){
add(j,this)});
else
add(j,cQuery.isFunction(a[j])?a[j]():a[j]);
return s.join("&").replace(/%20/g,"+")}
});
var elemdisplay={},
timerId,
fxAttrs=[
["height","marginTop","marginBottom","paddingTop","paddingBottom"],
["width","marginLeft","marginRight","paddingLeft","paddingRight"],
["opacity"]
];
function genFx(type,num){
var obj={};
cQuery.each(fxAttrs.concat.apply([],fxAttrs.slice(0,num)),function(){
obj[this]=type});
return obj}
cQuery.fn.extend({
show:function(speed,callback){
if(speed){
return this.animate(genFx("show",3),speed,callback)}else{
for(var i=0,l=this.length;i<l;i++){
var old=cQuery.data(this[i],"olddisplay");
this[i].style.display=old||"";
if(cQuery.css(this[i],"display")==="none"){
var tagName=this[i].tagName,display;
if(elemdisplay[tagName]){
display=elemdisplay[tagName]}else{
var elem=cQuery("<"+tagName+" />").appendTo("body");
display=elem.css("display");
if(display==="none")
display="block";
elem.remove();
elemdisplay[tagName]=display}
cQuery.data(this[i],"olddisplay",display)}
}
for(var i=0,l=this.length;i<l;i++){
this[i].style.display=cQuery.data(this[i],"olddisplay")||""}
return this}
},
hide:function(speed,callback){
if(speed){
return this.animate(genFx("hide",3),speed,callback)}else{
for(var i=0,l=this.length;i<l;i++){
var old=cQuery.data(this[i],"olddisplay");
if(!old&&old!=="none")
cQuery.data(this[i],"olddisplay",cQuery.css(this[i],"display"))}
for(var i=0,l=this.length;i<l;i++){
this[i].style.display="none"}
return this}
},
_toggle:cQuery.fn.toggle,
toggle:function(fn,fn2){
var bool=typeof fn==="boolean";
return cQuery.isFunction(fn)&&cQuery.isFunction(fn2)?
this._toggle.apply(this,arguments):
fn==null||bool?
this.each(function(){
var state=bool?fn:cQuery(this).is(":hidden");
cQuery(this)[state?"show":"hide"]()}):
this.animate(genFx("toggle",3),fn,fn2)},
fadeTo:function(speed,to,callback){
return this.animate({opacity:to},speed,callback)},
animate:function(prop,speed,easing,callback){
var optall=cQuery.speed(speed,easing,callback);
return this[optall.queue===false?"each":"queue"](function(){
var opt=cQuery.extend({},optall),p,
hidden=this.nodeType==1&&cQuery(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")&&this.style){
opt.display=cQuery.css(this,"display");
opt.overflow=this.style.overflow}
}
if(opt.overflow!=null)
this.style.overflow="hidden";
opt.curAnim=cQuery.extend({},prop);
cQuery.each(prop,function(name,val){
var e=new cQuery.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})},
stop:function(clearQueue,gotoEnd){
var timers=cQuery.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}
});
cQuery.each({
slideDown:genFx("show",1),
slideUp:genFx("hide",1),
slideToggle:genFx("toggle",1),
fadeIn:{opacity:"show"},
fadeOut:{opacity:"hide"}
},function(name,props){
cQuery.fn[name]=function(speed,callback){
return this.animate(props,speed,callback)}});
cQuery.extend({
speed:function(speed,easing,fn){
var opt=typeof speed==="object"?speed:{
complete:fn||!fn&&easing||
cQuery.isFunction(speed)&&speed,
duration:speed,
easing:fn&&easing||easing&&!cQuery.isFunction(easing)&&easing
};
opt.duration=cQuery.fx.off?0:typeof opt.duration==="number"?opt.duration:
cQuery.fx.speeds[opt.duration]||cQuery.fx.speeds._default;
opt.old=opt.complete;
opt.complete=function(){
if(opt.queue!==false)
cQuery(this).dequeue();
if(cQuery.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:[],
fx:function(elem,options,prop){
this.options=options;
this.elem=elem;
this.prop=prop;
if(!options.orig)
options.orig={}}
});
cQuery.fx.prototype={
update:function(){
if(this.options.step)
this.options.step.call(this.elem,this.now,this);
(cQuery.fx.step[this.prop]||cQuery.fx.step._default)(this);
if((this.prop=="height"||this.prop=="width")&&this.elem.style)
this.elem.style.display="block"},
cur:function(force){
if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))
return this.elem[this.prop];
var r=parseFloat(cQuery.css(this.elem,this.prop,force));
return r&&r>-10000?r:parseFloat(cQuery.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;
var self=this;
function t(gotoEnd){
return self.step(gotoEnd)}
t.elem=this.elem;
if(t()&&cQuery.timers.push(t)&&!timerId){
timerId=setInterval(function(){
var timers=cQuery.timers;
for(var i=0;i<timers.length;i++)
if(!timers[i]())
timers.splice(i--,1);
if(!timers.length){
clearInterval(timerId);
timerId=undefined}
},13)}
},
show:function(){
this.options.orig[this.prop]=cQuery.attr(this.elem.style,this.prop);
this.options.show=true;
this.custom(this.prop=="width"||this.prop=="height"?1:0,this.cur());
cQuery(this.elem).show()},
hide:function(){
this.options.orig[this.prop]=cQuery.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(cQuery.css(this.elem,"display")=="none")
this.elem.style.display="block"}
if(this.options.hide)
cQuery(this.elem).hide();
if(this.options.hide||this.options.show)
for(var p in this.options.curAnim)
cQuery.attr(this.elem.style,p,this.options.orig[p]);
this.options.complete.call(this.elem)}
return false}else{
var n=t-this.startTime;
this.state=n/this.options.duration;
this.pos=cQuery.easing[this.options.easing||(cQuery.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}
};
cQuery.extend(cQuery.fx,{
speeds:{
slow:600,
fast:200,
_default:400
},
step:{
opacity:function(fx){
cQuery.attr(fx.elem.style,"opacity",fx.now)},
_default:function(fx){
if(fx.elem.style&&fx.elem.style[fx.prop]!=null)
fx.elem.style[fx.prop]=fx.now+fx.unit;
else
fx.elem[fx.prop]=fx.now}
}
});
if(document.documentElement["getBoundingClientRect"])
cQuery.fn.offset=function(){
if(!this[0])return{top:0,left:0};
if(this[0]===this[0].ownerDocument.body)return cQuery.offset.bodyOffset(this[0]);
var box=this[0].getBoundingClientRect(),doc=this[0].ownerDocument,body=doc.body,docElem=doc.documentElement,
clientTop=docElem.clientTop||body.clientTop||0,clientLeft=docElem.clientLeft||body.clientLeft||0,
top=box.top+(self.pageYOffset||cQuery.boxModel&&docElem.scrollTop||body.scrollTop)-clientTop,
left=box.left+(self.pageXOffset||cQuery.boxModel&&docElem.scrollLeft||body.scrollLeft)-clientLeft;
return{top:top,left:left}};
else
cQuery.fn.offset=function(){
if(!this[0])return{top:0,left:0};
if(this[0]===this[0].ownerDocument.body)return cQuery.offset.bodyOffset(this[0]);
cQuery.offset.initialized||cQuery.offset.initialize();
var elem=this[0],offsetParent=elem.offsetParent,prevOffsetParent=elem,
doc=elem.ownerDocument,computedStyle,docElem=doc.documentElement,
body=doc.body,defaultView=doc.defaultView,
prevComputedStyle=defaultView.getComputedStyle(elem,null),
top=elem.offsetTop,left=elem.offsetLeft;
while((elem=elem.parentNode)&&elem!==body&&elem!==docElem){
computedStyle=defaultView.getComputedStyle(elem,null);
top-=elem.scrollTop,left-=elem.scrollLeft;
if(elem===offsetParent){
top+=elem.offsetTop,left+=elem.offsetLeft;
if(cQuery.offset.doesNotAddBorder&&!(cQuery.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(elem.tagName)))
top+=parseInt(computedStyle.borderTopWidth,10)||0,
left+=parseInt(computedStyle.borderLeftWidth,10)||0;
prevOffsetParent=offsetParent,offsetParent=elem.offsetParent}
if(cQuery.offset.subtractsBorderForOverflowNotVisible&&computedStyle.overflow!=="visible")
top+=parseInt(computedStyle.borderTopWidth,10)||0,
left+=parseInt(computedStyle.borderLeftWidth,10)||0;
prevComputedStyle=computedStyle}
if(prevComputedStyle.position==="relative"||prevComputedStyle.position==="static")
top+=body.offsetTop,
left+=body.offsetLeft;
if(prevComputedStyle.position==="fixed")
top+=Math.max(docElem.scrollTop,body.scrollTop),
left+=Math.max(docElem.scrollLeft,body.scrollLeft);
return{top:top,left:left}};
cQuery.offset={
initialize:function(){
if(this.initialized)return;
var body=document.body,container=document.createElement('div'),innerDiv,checkDiv,table,td,rules,prop,bodyMarginTop=body.style.marginTop,
html='<div style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;"><div></div></div><table style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;" cellpadding="0" cellspacing="0"><tr><td></td></tr></table>';
rules={position:'absolute',top:0,left:0,margin:0,border:0,width:'1px',height:'1px',visibility:'hidden'};
for(prop in rules)container.style[prop]=rules[prop];
container.innerHTML=html;
body.insertBefore(container,body.firstChild);
innerDiv=container.firstChild,checkDiv=innerDiv.firstChild,td=innerDiv.nextSibling.firstChild.firstChild;
this.doesNotAddBorder=(checkDiv.offsetTop!==5);
this.doesAddBorderForTableAndCells=(td.offsetTop===5);
innerDiv.style.overflow='hidden',innerDiv.style.position='relative';
this.subtractsBorderForOverflowNotVisible=(checkDiv.offsetTop===-5);
body.style.marginTop='1px';
this.doesNotIncludeMarginInBodyOffset=(body.offsetTop===0);
body.style.marginTop=bodyMarginTop;
body.removeChild(container);
this.initialized=true},
bodyOffset:function(body){
cQuery.offset.initialized||cQuery.offset.initialize();
var top=body.offsetTop,left=body.offsetLeft;
if(cQuery.offset.doesNotIncludeMarginInBodyOffset)
top+=parseInt(cQuery.curCSS(body,'marginTop',true),10)||0,
left+=parseInt(cQuery.curCSS(body,'marginLeft',true),10)||0;
return{top:top,left:left}}
};
cQuery.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||document.body;
while(offsetParent&&(!/^body|html$/i.test(offsetParent.tagName)&&cQuery.css(offsetParent,'position')=='static'))
offsetParent=offsetParent.offsetParent;
return cQuery(offsetParent)}
});
cQuery.each(['Left','Top'],function(i,name){
var method='scroll'+name;
cQuery.fn[method]=function(val){
if(!this[0])return null;
return val!==undefined?
this.each(function(){
this==window||this==document?
window.scrollTo(
!i?val:cQuery(window).scrollLeft(),
i?val:cQuery(window).scrollTop()
):
this[method]=val}):
this[0]==window||this[0]==document?
self[i?'pageYOffset':'pageXOffset']||
cQuery.boxModel&&document.documentElement[method]||
document.body[method]:
this[0][method]}});
cQuery.each(["Height","Width"],function(i,name){
var tl=i?"Left":"Top",br=i?"Right":"Bottom",lower=name.toLowerCase();
cQuery.fn["inner"+name]=function(){
return this[0]?
cQuery.css(this[0],lower,false,"padding"):
null};
cQuery.fn["outer"+name]=function(margin){
return this[0]?
cQuery.css(this[0],lower,false,margin?"margin":"border"):
null};
var type=name.toLowerCase();
cQuery.fn[type]=function(size){
return this[0]==window?
document.compatMode=="CSS1Compat"&&document.documentElement["client"+name]||
document.body["client"+name]:
this[0]==document?
Math.max(
document.documentElement["client"+name],
document.body["scroll"+name],document.documentElement["scroll"+name],
document.body["offset"+name],document.documentElement["offset"+name]
):
size===undefined?
(this.length?cQuery.css(this[0],type):null):
this.css(type,typeof size==="string"?size:size+"px")}})})();


cQuery.noConflict();


;(function($){
$.fn.ajaxSubmit=function(options){
if(!this.length){
log('ajaxSubmit: skipping submit process - no element selected');
return this}
if(typeof options=='function')
options={success:options};
options=$.extend({
url:this.attr('action')||window.location.toString(),
type:this.attr('method')||'GET'
},options||{});
var veto={};
this.trigger('form-pre-serialize',[this,options,veto]);
if(veto.veto){
log('ajaxSubmit: submit vetoed via form-pre-serialize trigger');
return this}
if(options.beforeSerialize&&options.beforeSerialize(this,options)===false){
log('ajaxSubmit: submit aborted via beforeSerialize callback');
return this}
var a=this.formToArray(options.semantic);
if(options.data){
options.extraData=options.data;
for(var n in options.data){
if(options.data[n]instanceof Array){
for(var k in options.data[n])
a.push({name:n,value:options.data[n][k]})
}
else
a.push({name:n,value:options.data[n]})}
}
if(options.beforeSubmit&&options.beforeSubmit(a,this,options)===false){
log('ajaxSubmit: submit aborted via beforeSubmit callback');
return this}
this.trigger('form-submit-validate',[a,this,options,veto]);
if(veto.veto){
log('ajaxSubmit: submit vetoed via form-submit-validate trigger');
return this}
var q=$.param(a);
if(options.type.toUpperCase()=='GET'){
options.url+=(options.url.indexOf('?')>=0?'&':'?')+q;
options.data=null}
else
options.data=q;
var $form=this,callbacks=[];
if(options.resetForm)callbacks.push(function(){$form.resetForm()});
if(options.clearForm)callbacks.push(function(){$form.clearForm()});
if(!options.dataType&&options.target){
var oldSuccess=options.success||function(){};
callbacks.push(function(data){
$(options.target).html(data).each(oldSuccess,arguments)})}
else if(options.success)
callbacks.push(options.success);
options.success=function(data,status){
for(var i=0,max=callbacks.length;i<max;i++)
callbacks[i].apply(options,[data,status,$form])};
var files=$('input:file',this).fieldValue();
var found=false;
for(var j=0;j<files.length;j++)
if(files[j])
found=true;
if(options.iframe||found){
if($.browser.safari&&options.closeKeepAlive)
$.get(options.closeKeepAlive,fileUpload);
else
fileUpload()}
else
$.ajax(options);
this.trigger('form-submit-notify',[this,options]);
return this;
function fileUpload(){
var form=$form[0];
if($(':input[name=submit]',form).length){
alert('Error: Form elements must not be named "submit".');
return}
var opts=$.extend({},$.ajaxSettings,options);
var s=cQuery.extend(true,{},$.extend(true,{},$.ajaxSettings),opts);
var id='jqFormIO'+(new Date().getTime());
var $io=$('<iframe id="'+id+'" name="'+id+'" />');
var io=$io[0];
if($.browser.msie||$.browser.opera)
io.src='javascript:false;document.write("");';
$io.css({position:'absolute',top:'-1000px',left:'-1000px'});
var xhr={
aborted:0,
responseText:null,
responseXML:null,
status:0,
statusText:'n/a',
getAllResponseHeaders:function(){},
getResponseHeader:function(){},
setRequestHeader:function(){},
abort:function(){
this.aborted=1;
$io.attr('src','about:blank')}
};
var g=opts.global;
if(g&&!$.active++)$.event.trigger("ajaxStart");
if(g)$.event.trigger("ajaxSend",[xhr,opts]);
if(s.beforeSend&&s.beforeSend(xhr,s)===false){
s.global&&cQuery.active--;
return}
if(xhr.aborted)
return;
var cbInvoked=0;
var timedOut=0;
var sub=form.clk;
if(sub){
var n=sub.name;
if(n&&!sub.disabled){
options.extraData=options.extraData||{};
options.extraData[n]=sub.value;
if(sub.type=="image"){
options.extraData[name+'.x']=form.clk_x;
options.extraData[name+'.y']=form.clk_y}
}
}
setTimeout(function(){
var t=$form.attr('target'),a=$form.attr('action');
$form.attr({
target:id,
method:'POST',
action:opts.url
});
if(!options.skipEncodingOverride){
$form.attr({
encoding:'multipart/form-data',
enctype:'multipart/form-data'
})}
if(opts.timeout)
setTimeout(function(){timedOut=true;cb()},opts.timeout);
var extraInputs=[];
try{
if(options.extraData)
for(var n in options.extraData)
extraInputs.push(
$('<input type="hidden" name="'+n+'" value="'+options.extraData[n]+'" />')
.appendTo(form)[0]);
$io.appendTo('body');
io.attachEvent?io.attachEvent('onload',cb):io.addEventListener('load',cb,false);
form.submit()}
finally{
$form.attr('action',a);
t?$form.attr('target',t):$form.removeAttr('target');
$(extraInputs).remove()}
},10);
function cb(){
if(cbInvoked++)return;
io.detachEvent?io.detachEvent('onload',cb):io.removeEventListener('load',cb,false);
var operaHack=0;
var ok=true;
try{
if(timedOut)throw'timeout';
var data,doc;
doc=io.contentWindow?io.contentWindow.document:io.contentDocument?io.contentDocument:io.document;
if(doc.body==null&&!operaHack&&$.browser.opera){
operaHack=1;
cbInvoked--;
setTimeout(cb,100);
return}
xhr.responseText=doc.body?doc.body.innerHTML:null;
xhr.responseXML=doc.XMLDocument?doc.XMLDocument:doc;
xhr.getResponseHeader=function(header){
var headers={'content-type':opts.dataType};
return headers[header]};
if(opts.dataType=='json'||opts.dataType=='script'){
var ta=doc.getElementsByTagName('textarea')[0];
xhr.responseText=ta?ta.value:xhr.responseText}
else if(opts.dataType=='xml'&&!xhr.responseXML&&xhr.responseText!=null){
xhr.responseXML=toXml(xhr.responseText)}
data=$.httpData(xhr,opts.dataType)}
catch(e){
ok=false;
$.handleError(opts,xhr,'error',e)}
if(ok){
opts.success(data,'success');
if(g)$.event.trigger("ajaxSuccess",[xhr,opts])}
if(g)$.event.trigger("ajaxComplete",[xhr,opts]);
if(g&&!--$.active)$.event.trigger("ajaxStop");
if(opts.complete)opts.complete(xhr,ok?'success':'error');
setTimeout(function(){
$io.remove();
xhr.responseXML=null},100)};
function toXml(s,doc){
if(window.ActiveXObject){
doc=new ActiveXObject('Microsoft.XMLDOM');
doc.async='false';
doc.loadXML(s)}
else
doc=(new DOMParser()).parseFromString(s,'text/xml');
return(doc&&doc.documentElement&&doc.documentElement.tagName!='parsererror')?doc:null}}};
$.fn.ajaxForm=function(options){
return this.ajaxFormUnbind().bind('submit.form-plugin',function(){
$(this).ajaxSubmit(options);
return false}).each(function(){
$(":submit,input:image",this).bind('click.form-plugin',function(e){
var form=this.form;
form.clk=this;
if(this.type=='image'){
if(e.offsetX!=undefined){
form.clk_x=e.offsetX;
form.clk_y=e.offsetY}else if(typeof $.fn.offset=='function'){
var offset=$(this).offset();
form.clk_x=e.pageX-offset.left;
form.clk_y=e.pageY-offset.top}else{
form.clk_x=e.pageX-this.offsetLeft;
form.clk_y=e.pageY-this.offsetTop}
}
setTimeout(function(){form.clk=form.clk_x=form.clk_y=null},10)})})};
$.fn.ajaxFormUnbind=function(){
this.unbind('submit.form-plugin');
return this.each(function(){
$(":submit,input:image",this).unbind('click.form-plugin')})};
$.fn.formToArray=function(semantic){
var a=[];
if(this.length==0)return a;
var form=this[0];
var els=semantic?form.getElementsByTagName('*'):form.elements;
if(!els)return a;
for(var i=0,max=els.length;i<max;i++){
var el=els[i];
var n=el.name;
if(!n)continue;
if(semantic&&form.clk&&el.type=="image"){
if(!el.disabled&&form.clk==el)
a.push({name:n+'.x',value:form.clk_x},{name:n+'.y',value:form.clk_y});
continue}
var v=$.fieldValue(el,true);
if(v&&v.constructor==Array){
for(var j=0,jmax=v.length;j<jmax;j++)
a.push({name:n,value:v[j]})}
else if(v!==null&&typeof v!='undefined')
a.push({name:n,value:v})}
if(!semantic&&form.clk){
var inputs=form.getElementsByTagName("input");
for(var i=0,max=inputs.length;i<max;i++){
var input=inputs[i];
var n=input.name;
if(n&&!input.disabled&&input.type=="image"&&form.clk==input)
a.push({name:n+'.x',value:form.clk_x},{name:n+'.y',value:form.clk_y})}
}
return a};
$.fn.formSerialize=function(semantic){
return $.param(this.formToArray(semantic))};
$.fn.fieldSerialize=function(successful){
var a=[];
this.each(function(){
var n=this.name;
if(!n)return;
var v=$.fieldValue(this,successful);
if(v&&v.constructor==Array){
for(var i=0,max=v.length;i<max;i++)
a.push({name:n,value:v[i]})}
else if(v!==null&&typeof v!='undefined')
a.push({name:this.name,value:v})});
return $.param(a)};
$.fn.fieldValue=function(successful){
for(var val=[],i=0,max=this.length;i<max;i++){
var el=this[i];
var v=$.fieldValue(el,successful);
if(v===null||typeof v=='undefined'||(v.constructor==Array&&!v.length))
continue;
v.constructor==Array?$.merge(val,v):val.push(v)}
return val};
$.fieldValue=function(el,successful){
var n=el.name,t=el.type,tag=el.tagName.toLowerCase();
if(typeof successful=='undefined')successful=true;
if(successful&&(!n||el.disabled||t=='reset'||t=='button'||
(t=='checkbox'||t=='radio')&&!el.checked||
(t=='submit'||t=='image')&&el.form&&el.form.clk!=el||
tag=='select'&&el.selectedIndex==-1))
return null;
if(tag=='select'){
var index=el.selectedIndex;
if(index<0)return null;
var a=[],ops=el.options;
var one=(t=='select-one');
var max=(one?index+1:ops.length);
for(var i=(one?index:0);i<max;i++){
var op=ops[i];
if(op.selected){
var v=$.browser.msie&&!(op.attributes['value'].specified)?op.text:op.value;
if(one)return v;
a.push(v)}
}
return a}
return el.value};
$.fn.clearForm=function(){
return this.each(function(){
$('input,select,textarea',this).clearFields()})};
$.fn.clearFields=$.fn.clearInputs=function(){
return this.each(function(){
var t=this.type,tag=this.tagName.toLowerCase();
if(t=='text'||t=='password'||tag=='textarea')
this.value='';
else if(t=='checkbox'||t=='radio')
this.checked=false;
else if(tag=='select')
this.selectedIndex=-1})};
$.fn.resetForm=function(){
return this.each(function(){
if(typeof this.reset=='function'||(typeof this.reset=='object'&&!this.reset.nodeType))
this.reset()})};
$.fn.enable=function(b){
if(b==undefined)b=true;
return this.each(function(){
this.disabled=!b
})};
$.fn.selected=function(select){
if(select==undefined)select=true;
return this.each(function(){
var t=this.type;
if(t=='checkbox'||t=='radio')
this.checked=select;
else if(this.tagName.toLowerCase()=='option'){
var $sel=$(this).parent('select');
if(select&&$sel[0]&&$sel[0].type=='select-one'){
$sel.find('option').selected(false)}
this.selected=select}
})};
function log(){
if($.fn.ajaxSubmit.debug&&window.console&&window.console.log)
window.console.log('[jquery.form] '+Array.prototype.join.call(arguments,''))}})(cQuery);


(function($){
$.fn.px=function(prop){
var val;
if($.browser.msie){
$('<span><\/span>')
.css({display:'block',width:'1em'})
.appendTo(this[0])
.each(function(){
val=parseInt($(this).width())+'px'})
.remove()}else{
val=this.css(prop)}
return val}})(cQuery);


(function($){
$.prototype.cfgCrayons=function(options){
this.url_crayons_html='?action=crayons_html';
this.img={
'searching':{'txt':'En attente du serveur ...'},
'edit':{'txt':'Editer'},
'img-changed':{'txt':'Deja modifie'}
};
this.txt={
};
for(opt in options){
this[opt]=options[opt]}
};
$.prototype.cfgCrayons.prototype.mkimg=function(what,extra){
var txt=this.img[what]?this.img[what].txt:this.img['crayon'].txt;
return'<em class="crayon-'+what+'" title="'+txt+(extra?extra:'')+'"></em>'};
$.prototype.cfgCrayons.prototype.iconclick=function(c,type){
var link=c.match(/\b(\w+)--(\d+)\b/);
link=link?
'<a href="ecrire/?exec='+link[1]+'s_edit&id_'+link[1]+'='+link[2]+
'">'+this.mkimg('edit',' ('+link[1]+' '+link[2]+')')+'</a>':'';
var cray=c.match(/\b\w+-(\w+)-\d+\b/)||c.match(/\b\meta-valeur-(\w+)\b/);
var boite=!cray?'':this.mkimg(type,' ('+cray[1]+')');
return"<span class='crayon-icones'><span>"+boite+
this.mkimg('img-changed',cray?' ('+cray[1]+')':'')+
link+"</span></span>"};
function entity2unicode(txt)
{
var reg=txt.split(/&#(\d+);/i);
for(var i=1;i<reg.length;i+=2){
reg[i]=String.fromCharCode(parseInt(reg[i]))}
return reg.join('')};
function uniAlert(txt)
{
alert(entity2unicode(txt))};
function uniConfirm(txt)
{
return confirm(entity2unicode(txt))};
$.fn.crayon=function(){
if(this.length)
return $(
$.map(this,function(a){
return'#'+($(a).find('.crayon-icones').attr('rel'))})
.join(','));
else
return $([])};
$.fn.opencrayon=function(evt,percent){
if(evt&&evt.stopPropagation){
evt.stopPropagation()}
return this
.each(function(){
if(!$(this).is('.crayon'))
return;
if($(this).is('.crayon-has')){
$(this)
.css('visibility','hidden')
.crayon()
.show()}
else{
if($(this).find("em.crayon-searching").length){
return}
$(this)
.find('>span.crayon-icones span')
.append(configCrayons.mkimg('searching'));var me=this;
var offset=$(this).offset();
var params={
'top':offset.top,
'left':offset.left,
'w':$(this).width(),
'h':$(this).height(),
'ww':(window.innerWidth?window.innerWidth:(document.documentElement.clientWidth?document.documentElement.clientWidth:document.body.offsetWidth)),
'wh':(window.innerHeight?window.innerHeight:(document.documentElement.clientHeight?document.documentElement.clientHeight:document.body.offsetHeight)),
'em':$(this).px('fontSize'),'class':me.className,
'color':$(this).css('color'),
'font-size':$(this).px('fontSize'),
'font-family':$(this).css('fontFamily'),
'font-weight':$(this).css('fontWeight'),
'line-height':$(this).css('lineHeight'),
'background-color':$(this).css('backgroundColor'),
'self':configCrayons.self
};
if(me.type)params.type=me.type;
if(params['background-color']=='transparent'
||params['background-color']=='rgba(0, 0, 0, 0)'){
$(me).parents()
.each(function(){
var bg=$(this).css('backgroundColor');
if(bg!='transparent'
&&(params['background-color']=='transparent'
||params['background-color']=='rgba(0, 0, 0, 0)'))
params['background-color']=bg})}
$.post(configCrayons.url_crayons_html,
params,
function(c){
try{
eval('c = '+c)}catch(e){
c={'$erreur':'erreur de communication :'+'  '+e.message,'$html':''}}
$(me)
.find("em.crayon-searching")
.remove();
if(c.$erreur){
uniAlert(c.$erreur);
return false}
id_crayon++;
var position='absolute';
$(me).parents().each(function(){
if($(this).css("position")=="fixed")
position='fixed'});
$(me)
.css('visibility','hidden')
.addClass('crayon-has')
.find('>.crayon-icones')
.attr('rel','crayon_'+id_crayon);
if($.browser.msie)$(me).css({'zoom':1});
var pos=$(me).offset();
$('<div class="crayon-html" id="crayon_'+id_crayon+'"></div>')
.css({
'position':position,
'top':pos['top']-1,
'left':pos['left']-1
})
.appendTo('body')
.html(c.$html);
$(me)
.activatecrayon(percent);
var diff=$('#crayon_'+id_crayon).offset().left+$('#crayon_'+id_crayon).width()-$(window).width();
if(diff>0){
$('#crayon_'+id_crayon)
.css({'left':parseInt(pos['left'])-diff})}
}
)}
})};
$.fn.cancelcrayon=function(){
this
.filter('.crayon-has')
.css('visibility','visible')
.removeClass('crayon-has')
.removeClass('crayon-changed')
.crayon()
.remove();
return this};
$.fn.hidecrayon=function(){
this
.filter('.crayon-has')
.css('visibility','visible')
.crayon()
.hide()
.removeClass('crayon-hover');
return this};
$.fn.activatecrayon=function(percent){
this
.crayon()
.click(function(e){
e.stopPropagation()});
this
.each(function(){
var me=$(this);
var crayon=$(this).crayon();
crayon
.find('form')
.append(
$('<input type="hidden" name="self" />')
.attr('value',configCrayons.self)
)
.ajaxForm({
"dataType":"json",
"success":function(d){
me
.find("em.crayon-searching")
.remove();
crayon
.find("span.crayon-invalide p")
.remove();
crayon
.find("span.crayon-invalide")
.each(function(){
$(this).replaceWith(this.childNodes)}
);
if(d.$invalides){
for(invalide in d.$invalides){
d.$invalides[invalide]['retour']?retour=d.$invalides[invalide]['retour']:retour='';
d.$invalides[invalide]['msg']?msg=d.$invalides[invalide]['msg']:msg='';
crayon
.find("*[name='content_"+invalide+"']")
.wrap("<span class=\"crayon-invalide\"></span>")
.parent()
.append("<p>"
+retour
+" "
+msg
+"</p>"
)}
}
if(d.$erreur>''){
if(d.$annuler){
if(d.$erreur>' '){
uniAlert(d.$erreur)}
me
.cancelcrayon()}else{
uniAlert(d.$erreur+'\n'+configCrayons.txt.error)}
}
if(d.erreur>''||d.$invalides){
crayon
.find('form')
.css('opacity',1.0)
.find(".crayon-boutons,.resizehandle")
.show()
.end()
.find('.crayon-searching')
.remove();
return false}
$(me)
.cancelcrayon();
var tous=$(
'.crayon.crayon-autorise.'+
me[0].className.match(/crayon ([^ ]+)/)[1]
)
.html(
d[$('input.crayon-id',crayon).val()]
)
.iconecrayon();
if(typeof triggerAjaxLoad=='function')
triggerAjaxLoad(tous.get())}})
.one('submit',function(){
crayon
.find('form')
.css('opacity',0.5)
.after(configCrayons.mkimg('searching')).find(".crayon-boutons,.resizehandle")
.hide()})
.keyup(function(e){
crayon
.find(".crayon-boutons")
.show();
me
.addClass('crayon-changed');
e.cancelBubble=true})
.change(function(e){
crayon
.find(".crayon-boutons")
.show();
me
.addClass('crayon-changed');
e.cancelBubble=true})
.keypress(function(e){
e.cancelBubble=true})
.find("textarea.crayon-active,input.crayon-active[type=text]")
.each(function(n){
if(n==0){
this.focus();
var position=parseInt(percent*this.textLength);
this.selectionStart=position;
this.selectionEnd=position}
})
.keydown(function(e){
if(!e.charCode&&e.keyCode==119){
crayon
.find("form.formulaire_crayon")
.submit()}
})
.keypress(function(e){
if(e.keyCode==27){
me
.cancelcrayon()}
if(
(e.ctrlKey&&(
((e.charCode||e.keyCode)==115)||((e.charCode||e.keyCode)==83))
||(e.charCode==19&&e.keyCode==19)
)
){
crayon
.find("form.formulaire_crayon")
.submit()}
var maxh=this.className.match(/\bmaxheight(\d+)?\b/);
if(maxh){
maxh=maxh[1]?parseInt(maxh[1]):200;
maxh=this.scrollHeight<maxh?this.scrollHeight:maxh;
if(maxh>this.clientHeight){
$(this).css('height',maxh+'px')}
}
})
.end()
.find(".crayon-submit")
.click(function(e){
e.stopPropagation();
$(this)
.parents("form:eq(0)")
.submit()})
.end()
.find(".crayon-cancel")
.click(function(e){
e.stopPropagation();
me
.cancelcrayon()})
.end()
.each(function(){
var offset=$(this).offset();
var hauteur=parseInt($(this).css('height'));
var scrolltop=$(window).scrollTop();
var h=$(window).height();
if(offset['top']-5<=scrolltop)
$(window).scrollTop(offset['top']-5);
else if(offset['top']+hauteur-h+20>scrolltop)
$(window).scrollTop(offset['top']+hauteur-h+30);
$("textarea",this)
.each(function(){
if(percent&&this.scrollHeight>hauteur){
this.scrollTop=this.scrollHeight*percent-hauteur}
})
.resizehandle()
.next('.resizehandle')
.next('.crayon-boutons')
.addClass('resizehandle_boutons')})
.end();
if(typeof triggerAjaxLoad=='function')
triggerAjaxLoad(crayon.get())})};
$.fn.iconecrayon=function(){
return this.each(function(){
var ctype=this.className.match(/\btype_(\w+)\b/);
type=(ctype)?ctype[1]:'crayon';
if(ctype)this.type=type;$(this).prepend(configCrayons.iconclick(this.className,type))
.find('.crayon-'+type+', .crayon-img-changed').click(function(e){
$(this).parents('.crayon:eq(0)').opencrayon(e)})})};
$.fn.initcrayon=function(){
this
.addClass('crayon-autorise')
.dblclick(function(e){
$(this).opencrayon(e,
((e.pageY?e.pageY:e.clientY)-document.body.scrollTop-this.offsetTop)
/this.clientHeight)})
.iconecrayon()
.hover(function(){
$(this)
.addClass('crayon-hover')
.find('>span.crayon-icones')
.find('>span>em.crayon-'+(this.type||'crayon')+',>span>em.crayon-edit')
.show()},function(){
$(this)
.removeClass('crayon-hover')
.find('>span.crayon-icones')
.find('>span>em.crayon-'+(this.type||'crayon')+',>span>em.crayon-edit')
.hide()}
);
return this};
$.fn.crayonsstart=function(){
if(!configCrayons.droits)return;
id_crayon=0;
if(configCrayons.txt.sauvegarder){
$(window).unload(function(e){
var chg=$(".crayon-changed");
if(chg.length&&uniConfirm(configCrayons.txt.sauvegarder)){
chg.crayon().find('form').submit()}
})}
if((typeof crayons_init_dynamique=='undefined')||(crayons_init_dynamique==false)){
$('.crayon:not(.crayon-init)')
.live('mouseover',function(){
$(this)
.addClass('crayon-init')
.filter(configCrayons.droits)
.initcrayon()
.trigger('mouseover')})}
if(configCrayons.cfg.clickhide)
$("html")
.click(function(){
$('.crayon-has')
.hidecrayon()})}})(cQuery);


(function($){
$.fn.resizehandle=function(){
return this.each(function(){
var me=$(this);
me.after(
$('<div class="resizehandle"></div>')
.css({height:'16px',width:Math.max(me.width()-4,10)}).bind('mousedown',function(e){
var h=me.height();
var y=e.clientY;
var moveHandler=function(e){
me
.height(Math.max(20,e.clientY+h-y))};
var upHandler=function(e){
$('html')
.unbind('mousemove',moveHandler)
.unbind('mouseup',upHandler)};
$('html')
.bind('mousemove',moveHandler)
.bind('mouseup',upHandler)})
)})}})(cQuery);


 
	
function easeInOut(minValue,maxValue,totalSteps,actualStep,powr){
var delta=maxValue-minValue;
var stepp=minValue+(Math.pow(((1/totalSteps)*actualStep),powr)*delta);
return Math.ceil(stepp)
};
function doBGFade(elem,startRGB,endRGB,finalColor,steps,intervals,powr){
if(elem.bgFadeInt)window.clearInterval(elem.bgFadeInt);
var actStep=0;
elem.bgFadeInt=window.setInterval(
function(){
elem.style.backgroundColor="rgb("+
easeInOut(startRGB[0],endRGB[0],steps,actStep,powr)+","+
easeInOut(startRGB[1],endRGB[1],steps,actStep,powr)+","+
easeInOut(startRGB[2],endRGB[2],steps,actStep,powr)+")";
actStep++;
if(actStep>steps){
elem.style.backgroundColor=finalColor;
window.clearInterval(elem.bgFadeInt)}
}
,intervals)
};
function findPos(obj){
var curleft=curtop=0;
if(obj.offsetParent){
curleft=obj.offsetLeft;
curtop=obj.offsetTop;
while(obj=obj.offsetParent){
curleft+=obj.offsetLeft;
curtop+=obj.offsetTop}
}
return[curleft,curtop]};
cQuery(document).ready(function(){
if(configCrayons.cfg.yellow_fade){
cQuery("div.crayon").hover(function(){doBGFade(this,[255,255,180],[255,255,255],'transparent',40,20,4)},function(){})}
if(configCrayons.cfg.filet){
cQuery('.crayon-icones img',this).css({
'padding':'2px',
'border':'2px solid #999',
'border-left':'0',
'background-color':'#FFF'
});
var test=0;
cQuery('.crayon-autorise').each(
function(){
var contenu=cQuery(this).html();
cQuery(this)
.css('height',this.offsetHeight+'px')
.html('<div></div>');
cQuery(this)
.find('div')
.html(contenu)
.css('position','absolute')
.css('width',this.offsetWidth+'px');
cQuery(this)
.prepend('<div class="survol"></div>')
.find('.survol')
.css('border','1px solid red')
.css('display','none')
.css('position','absolute')
.css('height',(this.offsetHeight-2)+'px')
.css('width',(this.offsetWidth-2)+'px');
if(cQuery.browser.msie){
cQuery('#survol')
.css('width',this.offsetWidth+'px')
.css('height',this.offsetHeight+'px')}
}
);
cQuery('.crayon-autorise').hover(
function(){
if(cQuery.browser.msie)cQuery(this).addClass('crayon-hover');
cQuery('.survol',this).css('display','block')},
function(){
if(cQuery.browser.msie)cQuery(this).removeClass('crayon-hover');
cQuery('.survol',this).css('display','none')}
)}
});


