/*
 * This program is free software. It comes without any warranty, to
 * the extent permitted by applicable law. You can redistribute it
 * and/or modify it under the terms of the Do What The Fuck You Want
 * To Public License, Version 2, as published by Sam Hocevar. See
 * http://sam.zoy.org/wtfpl/COPYING for more details.
 * Created in 2006-2008 by Xavier Lepaul
 */

// ==UserScript==
// @name        Pimp my Mitose
// @description Hey, plein de fonctionnalités cool ! Faut regarder la doc !
// @namespace   http://adwain.org/
// @include     http://www.2m3.net/*
// ==/UserScript==

var version = '0-23';

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

	/******
	Google Gears stuff
	******/	
	// Copyright 2007, Google Inc.
	//
	// Redistribution and use in source and binary forms, with or without
	// modification, are permitted provided that the following conditions are met:
	//
	//  1. Redistributions of source code must retain the above copyright notice,
	//     this list of conditions and the following disclaimer.
	//  2. Redistributions in binary form must reproduce the above copyright notice,
	//     this list of conditions and the following disclaimer in the documentation
	//     and/or other materials provided with the distribution.
	//  3. Neither the name of Google Inc. nor the names of its contributors may be
	//     used to endorse or promote products derived from this software without
	//     specific prior written permission.
	//
	// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
	// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
	// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
	// EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
	// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
	// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
	// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
	// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
	// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
	// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
	//
	// Sets up google.gears.*, which is *the only* supported way to access Gears.
	//
	// Circumvent this file at your own risk!
	//
	// In the future, Gears may automatically define google.gears.* without this
	// file. Gears may use these objects to transparently fix bugs and compatibility
	// issues. Applications that use the code below will continue to work seamlessly
	// when that happens.


	if (window.google && google.gears) {
		console.log('gears already exists');
	} else {
		console.log('try to create google.gears');
		var factory = null;
		// Firefox
		if (typeof GearsFactory != 'undefined') {
			factory = new GearsFactory();
			console.log('FF');
		} else {
			// IE
			try {
				factory = new ActiveXObject('Gears.Factory');
				// privateSetGlobalObject is only required and supported on IE Mobile on
				// WinCE.
				if (factory.getBuildInfo().indexOf('ie_mobile') != -1) {
					factory.privateSetGlobalObject(this);
				}
				console.log('IE');
			} 
			catch (e) {
				// Safari
				console.log('SF');
				if ((typeof navigator.mimeTypes != 'undefined')	&& navigator.mimeTypes["application/x-googlegears"]) {
					factory = document.createElement("object");
					factory.style.display = "none";
					factory.width = 0;
					factory.height = 0;
					factory.type = "application/x-googlegears";
					document.documentElement.appendChild(factory);
				}
			}
		}
		// *Do not* define any objects if Gears is not installed. This mimics the
		// behavior of Gears defining the objects in the future.
		if (!factory) {
			hasGears = false;
			console.log('gears is not installed...');
			return;
		}
		hasGears = true;
		
		// Now set up the objects, being careful not to overwrite anything.
		//
		// Note: In Internet Explorer for Windows Mobile, you can't add properties to
		// the window object. However, global objects are automatically added as
		// properties of the window object in all browsers.
		if (!window.google) {
			google = {};
		}

		if (!google.gears) {
			google.gears = {factory: factory};
		}

	}

	db = google.gears.factory.create('beta.database');
	db.open('database-mitose');
	db.execute('create table if not exists map (key text, value text)');
	console.log('table created');
	db.close();
}
init_gears();


console.log('here we go !!');

/******
Greasemonkey API replacements
******/	
function US_setValue(key, value){
	if (hasGears) {
		console.log('set value '+key + ':'+value);
		db.open('database-mitose');
		//I cant get REPLACE or ON DUPLICATE KEY UPDATE to work properly so this will have to do for the moment.
		var rs = db.execute('select key from map');
		var insert = true;
		while (rs.isValidRow()) {
			if(rs.field(0) == key){
				insert = false;
				break;
			}
			rs.next();
		}
		if(insert) {
			db.execute("insert into map values ('"+key+"', '"+value+"')");
		} else {
			db.execute("update map set value = '"+value+"' where key = '"+key+"'");
		}		
		db.close();
	} else {
		GM_setValue(key,value);
	}
}

function US_getValue(key){
	if (hasGears) {
		console.log('get value '+key);
		db.open('database-mitose');
		var value = db.execute("select value from map where key = '"+key+"' LIMIT 1").field(0);
		db.close();
		if (value == 'false') {
			return false;
		}
		return value; //should return undefined if it's not in the database
	}
}

function GM_addStyle(s){
	var gm_style = document.createElement('style');
	gm_style.type="text/css";
	gm_style.textContent=s;
	document.getElementsByTagName('head')[0].appendChild(gm_style);
}

function GM_log(t){
	console.log(t);
}

/*****************************/
/* PRÉPARATION DU TERRAIN    */
/*****************************/
// constantes
const showState = 'showState';
const showInterface = 'showInterface';
const boxPositionKey = 'boxPosition';
const showSmileys = 'showSmileys';
const positions = new Array('tl','tr','bl','br');
const comlus = 'comlus';
const tubvotes = 'tubvotes';
const tubvideo = 'tubvideo';
const extubables = 'extubables';
const categories = new Array('cine','musi','tech','dive','jeux','slip');
const catTitles = new Array('Cinéma - TV','Musique','Techno\' et Net','Faits Divers','Jeux','Fête du Slip');
const re_videos = /^http:\/\/[^\/]*\b(youtube|dailymotion|video.google|vimeo|koreus|icup|snotr|break|videosift|collegehumor|buzly|metacafe|rutube|wat|glumbert|superdeluxe|tudou|5min|wideo|liveleak|tv.closermag|kazados|apple.com\/trailers|hotvideo-clip.com|livevideo.com|video.msn.com|funnyordie.com)\b/;

// valeurs initiales
var stats = {user:$('td.moduletitre:eq(2)').text()};
if(US_getValue(boxPositionKey) == undefined) {
    US_setValue(boxPositionKey,positions[0]);
}
stats[boxPositionKey] = US_getValue(boxPositionKey);
$([showState,showInterface,showSmileys]).each(function() {
	if(US_getValue(this) == undefined) {
	    US_setValue(this,true);
	}
	stats[this] = US_getValue(this)?1:0;
});
$(categories.concat([comlus,tubvotes,tubvideo])).each(function() {
	var key = 'GM_' + this;
	if(US_getValue(key) == undefined) {
	    US_setValue(key,true);
	}
	stats[this] = US_getValue(key)?1:0;
});

/*GM_xmlhttpRequest({
	method:'GET',
	url:'http://vrac.adwain.org/tests/get?' + $.param(stats),
	onload: function(r){
		alert(r.responseText);
	}
});*/

// tubes/brèves de la page
var lis = $('ul.listetop li');
var isTubPage = $('ul.listetop').length == 3;


// sette l'attribut displayState
var stateAttr = 'displayState';
for(var i=0;li=lis[i];i++){
    $(li).attr(stateAttr,0);
}

document.title = document.title.replace(/2m3.net . /,'');
document.title = document.title.replace(/madames toutes nues/,'MTNs');

/*************************/
/* MISE  JOUR DU SCRIPT */
/*************************/
GM_xmlhttpRequest({
	method:'GET',
	url:'http://vrac.adwain.org/mitose/gm/last.version',
	onload: function(r){
		if(r.responseText.replace(/^\s+|\s+$/g,'') != version) {
			alert('Une nouvelle version de Pimp My Mitose est disponible !');
			window.location = 'http://vrac.adwain.org/mitose/mitose.user.js';
		}
	}
});
// collecte de statistiques
GM_xmlhttpRequest({
	method:'GET',
	url:'http://vrac.adwain.org/mitose/gm/send_stats?' + $.param(stats)
});

/*****************************/
/* CRÉATION DE L'INTERFACE   */
/*****************************/
// ajout des CSS
GM_addStyle('#gmbox {\
	display:none;\
	z-index:100;\
	font-family : sans-serif;\
	font-size : 11px;\
	position : fixed;\
	float : left;\
	background : url(http://vrac.adwain.org/img/degrade.png) #fff repeat-x 0 0;\
	border:1px solid #eee;\
	margin:0;\
	padding:10px;\
	text-align:left;\
}\
#gmbox .posLink {\
	position:absolute;\
	width:10px;\
	height:10px;\
	background-color:black;\
	cursor:pointer;\
}\
#pos_tl {\
	top:0;\
	left:0;\
}\
#pos_tr {\
	top:0;\
	right:0;\
}\
#pos_bl {\
	bottom:0;\
	left:0;\
}\
#pos_br {\
	bottom:0;\
	right:0;\
}\
#gmbox ul {\
	display:none;\
	margin:0;\
	padding:0;\
	list-style-type:none;\
}\
#gmbox li {\
	margin:0.25em 0;\
}\
#gmbox li.link {\
	font-weight:bold;\
}\
#gmbox li.sep {\
	height:1px;\
	margin:0.5em 0;\
	background-color:#000;\
}\
#gmbox li.link {\
	text-align:center;\
	font-weight:bold;\
}\
#gmbox li:hover, #gmbox li:hover * {\
	cursor:pointer;\
	text-decoration:underline\
}\
#gmbox input[type=checkbox] {\
	margin:0;\
	margin-right:0.5em;\
}\
.gm_smiley_box {\
	display:none;\
	text-align:left;\
	background-color:white;\
	border:1px solid black;\
}\
.gm_smiley_box.small {\
	position:absolute;\
	overflow:hidden;\
	width:12px;\
	height:12px;\
}\
.gm_smiley_box.big {\
	width:96px;\
}\
.gm_smiley_box img {\
	cursor:pointer;\
}\
.gm_smiley_box .helper_box {\
	border-top:1px solid black;\
	color:black;\
	text-align:center;\
}\
.gm_table, .gm_table tr, .gm_table td {\
	border:0;\
	margin:0;\
}\
');



// creation du menu et insertion dans la page
var menu = $('<ul/>');
var box = $('<div/>').attr('id','gmbox').append(menu);
$('body').append(box);

/***************************/
/* FILTRES DE BRÈVES/TUBES */
/***************************/
var filters = {
	// commentaires lus
	comlus: function() {
		return (!isTubPage) && $(this).is(':not(:has(img[src*=ico_com_new]))');
	},
	// tube voté
	tubvotes: function() {
		return isTubPage && $(this).is(':has(img[src$=ok.gif])') && !(US_getValue('GM_'+extubables) && $(this).is(':has(img[src$=ico_tube_piquer.gif])'));
	},
	// tubes extubables
	extubables: function() {
		return isTubPage && $(this).is(':has(img[src$=ico_tube_piquer.gif])') && !(US_getValue('GM_'+tubvotes) && $(this).is(':has(img[src$=ok.gif])'));
	},
	// tube vidéo
	tubvideo: function() {
		return isTubPage && $(this).find('a[target=_blank]').filter(function() {
			return re_videos.test(this.href);
		}).length == 1;
	}
}
function toggleFilteredList(filterName,show) {
	lis.filter(filters[filterName]).each(function() {
		computeDisplayState(this,show);
	});
}

function toggleEvent(e) {
	toggleFilteredList(this.id.substr(3,10),this.checked);
    US_setValue(this.id, this.checked);
}

// categories
function toggleCategory(cat, show) {
    if(isTubPage) return;
	lis.filter('[class^='+cat+']').each(function() {
		computeDisplayState(this,show);
	})
}
function categoryEvent(event) {
    var category = this.id.substr(3,10);
    toggleCategory(category,this.checked);
    US_setValue(this.id, this.checked);
}

// autre
function eval_truc(fct,val) {
	eval(fct + '(' + val + ');')
}

function otherTogglerEvent(e) {
	var fct = this.id.substr(3,10);
	eval_truc(fct, this.checked);
	US_setValue(this.id, this.checked);
}

function sendCopy(val) {
	if (val) {
		$('[name=mm_copie]').attr('checked','checked');
	} else {
		$('[name=mm_copie]').attr('checked','');
	}
}

function accRcpt(val) {
	if (val) {
		$('[name=mm_acu]').attr('checked','checked');
	} else {
		$('[name=mm_acu]').attr('checked','');
	}
}

function createToggler(name, title, type) {
	var title;
	var id = 'GM_' + name;
	var checkBox = $('<input type="checkbox"/>').attr('id',id);
	if(US_getValue(id)) {
		checkBox.attr('checked','checked');
	} else {
		switch(type) {
		case 1:
			toggleCategory(name, false);
			break;
		case 2:
			toggleFilteredList(name, false);
		}
	}
	switch(type) {
	case 1:
		checkBox.bind('change', categoryEvent);
		break;
	case 2:
		checkBox.bind('change', toggleEvent);
		break;
	default:
		eval_truc(name, US_getValue(id));
		checkBox.bind('change', otherTogglerEvent);
	}
	$(menu).append(
		$('<li/>').attr('class','toggler')
			.append(checkBox).append($('<label/>').attr('for',id).append(title))
	);
}

/***************************************/
/* POSITIONEMENT ET VISIBILITÉ DU MENU */
/***************************************/
/**
 * fonction pour positionner la boite
 * @param position la nouvelle position de la boite, parmi tl, tr, bl, br
 */
function moveBox(position) {
    var distance = '5px';
    var vertical = position.substring(0,1);
    var horizontal = position.substring(1,2);
    if(vertical == 't') {
		$(box).css({top:distance,bottom:'auto'});
    } else {
		$(box).css({top:'auto',bottom:distance});
    }
    if(horizontal == 'l') {
		$(box).css({left:distance,right:'auto'});
    } else {
		$(box).css({left:'auto',right:distance});
    }
}

function posLinkClick(e) {
	if(US_getValue(showState)) {
		if(e.data == US_getValue(boxPositionKey)) {
			menu.hide();
			US_setValue(showState,false);
		} else {
			moveBox(e.data);
			US_setValue(boxPositionKey,e.data.toString());
		}
	} else {
		menu.show();
		US_setValue(showState,true);
	}
}

// creation des liens de positionement
$(positions).each(function() {
	box.append($('<span/>')
		.attr({id:'pos_' + this,'class':'posLink'})
		.bind('click',this,posLinkClick)
    );
})

function interfaceVisibleState() {
	if(US_getValue(showInterface)) {
		box.show();
	} else {
		box.hide();
	}
}
function smileyVisibleState() {
	$('div.gm_smiley_box').each(function() {
		if(US_getValue(showSmileys)) {
			$(this).show();
		} else {
			$(this).hide();
		}
	})
}

// positionement et affichage du menu
moveBox(US_getValue(boxPositionKey));
if(US_getValue(showState)) {
	menu.show();
}
interfaceVisibleState();

/*****************************/
/* CRÉATION DU MENU          */
/*****************************/
/**
 * Crée un séparateur dans le menu
 */
function createSeparator() {
    menu.append($('<li/>').attr('class','sep'));
}

createToggler(comlus,'Commentaires lus',2);
// le lien pour tout lire
var listItem = document.createElement('li');
var itemText = document.createTextNode('Marquer tout comme lu');
listItem.appendChild(itemText);
listItem.className = 'link';
listItem.addEventListener('click', readAll, true);
menu.append(listItem);
createSeparator() ;
for(var i=0;i<categories.length;++i) {
	createToggler(categories[i],catTitles[i],1);
}
createSeparator() ;
createToggler(tubvotes,'Tubes votés',2);
createToggler(tubvideo,'Tubes video',2);
createToggler(extubables,'Tubes à piquer',2);
createSeparator();
createToggler('sendCopy','Tjrs une copie',3);
createToggler('accRcpt','Tjrs un accusé',3);
createSeparator();
var help = document.createElement('li');
var helpLink = document.createElement('a');
helpLink.href = 'http://vrac.adwain.org/mitose/mitose.user.help';
helpLink.target = '_blank';
var helpText = document.createTextNode('Aide');
helpLink.appendChild(helpText);
help.appendChild(helpLink);
help.className = 'link';
menu.append(help);

/*******************/
/* MENU DE FIREFOX */
/*******************/
GM_registerMenuCommand('Afficher/Cacher l\'interface', function (event){
	US_setValue(showInterface, !US_getValue(showInterface));
	interfaceVisibleState();
});
GM_registerMenuCommand('Afficher/Cacher les smileys', function (event){
	US_setValue(showSmileys, !US_getValue(showSmileys));
	smileyVisibleState();
});

/*****************************/
/* UTILITAIRES DE LISTES     */
/*****************************/
/**
 * Détermine si l'élement doit être affiché ou caché
 * @param element element à modifier
 * @param show true pour montrer, false pour cacher
 */
function computeDisplayState(element, show) {
    var displayState = parseInt($(element).attr(stateAttr));
    if(show && displayState == 0) {
        return;
    }
	displayState += (show?1:-1);
    $(element).attr(stateAttr,displayState);
    // l'item est montré uniquement si personne ne veut le cacher
    if(displayState == 0) {
		$(element).fadeIn('def',normalizeOddEven);
    } else {
		$(element).fadeOut('def',normalizeOddEven);
    }
}

/**
 * Répare l'alternance de couleurs sur les lignes
 * après suppression de lignes
 */
function normalizeOddEven() {
    var mustBeEven = false;
	lis.filter(':visible').each(function() {
		if(mustBeEven && $(this).attr('class').length == 4) {
			$(this).attr('class',$(this).attr('class') + '2');
		} else if(!mustBeEven && $(this).attr('class').length == 5){
			$(this).attr('class',$(this).attr('class').substr(0,4));
		}
		mustBeEven = !mustBeEven;
	})
}

// conserver le tri dans le tube
var re_tri = /&tri=[12]/;
var re_benn = /\?page=benn/;
if(re_benn.test(window.location) && re_tri.test(window.location)) {
    var tri_type = re_tri(window.location);
	$('a[href*=debut_arch]').each(function(i,a) {
		a.href+=tri_type;
	});
}

/*****************************/
/* LECTURE DES NON-LUS       */
/*****************************/
function readLi(li) {
	GM_xmlhttpRequest({
		method:'GET',
		url:'http://www.2m3.net/'+ $(li).find('a[href*=breve-]').attr('href')
	});
	$(li).find('img[src*=ico_com_new]').remove();
	if(!US_getValue('GM_comlus')) {
		computeDisplayState(li,false);
	}
}

function readLiEvent(event) {
    readLi($(this).parents('li'));
}

if(!isTubPage) {
	lis.find('img[src*=ico_com_new]').click(readLiEvent).css('cursor','pointer');
}

/**
 * Envoie une requête http vers toutes les brèves ayant des commentaires non lus
 * de manière à faire croire que l'on a tout lu
 */
var readList;
var readListIndex = 0;

function readLoop() {
    if(isTubPage) return;
    var li;
	if(readListIndex < readList.length) {
		readLi(readList.get(readListIndex++));
        window.setTimeout(readLoop,42*(4-2)*(4-2));
    }
}
function readAll(event) {
    readList = lis.filter(':has(img[src*=ico_com_new])');
    readLoop();
}

/******************/
/* VOTE DES TUBES */
/******************/
$('a[href*=benn][href*=vote]').bind('click',function(e){
	e.preventDefault();
	var vote = /vote=(.)/.exec(this.href)[1];
	var li = $(this).parents('li');
	var note = parseInt($(this).parent().next().text()) + (vote==1?1:-1);
	$(this).parent().next().text(note==0?'0':(note>0?'+'+note:note));
	$(this).parent().empty().append($('<img/>').attr('src',$(this).find('img').attr('src').replace('.gif','_ok.gif')));
	GM_xmlhttpRequest({
		method:'GET',
		url:this.href
	});
	if(!US_getValue('GM_' + tubvotes)) {
		computeDisplayState(li,false);
	}
})

/********************************/
/* MINICHAT ET COMMANDES CUSTOM */
/********************************/
// récupération de la liste complète des niks
var fullNikList;
GM_xmlhttpRequest({
	method:'GET',
	url:'http://vrac.adwain.org/mitose/niklist',
	onload: function(r){
		fullNikList = eval(r.responseText);
	}
});
function getLoggedMembersList() {
	return $('#zone_evenements div a:not(:contains(+))').map(function() {
		return $(this).text();
	});
}

// agrandit la longueur maximale de texte entré
$('input[name=msg]').attr('maxlength',2000);

var flood=false;
function sendMC(msg) {
	// gras
	msg = msg.replace(/\*\*((\*[^\*]|[^\*])*)\*\*/g,'[b]$1[/b]');
	// italique
	msg = msg.replace(/(https?):\/\//g,'$1_:_slash_slash');
	msg = msg.replace(/\/\/((\/[^\/]|[^\/])*)\/\//g,'[i]$1[/i]');
	msg = msg.replace(/(https?)_:_slash_slash/g,'$1://');
	// barré
	msg = msg.replace(/--((-[^-]|[^-])*)--/g,'[s]$1[/s]');
	// <3 pour :love:
	msg = msg.replace(/<3/g,':love:');

	// remplacements 'techniques'
	msg = msg.replace(/%/g,'%25');
	msg = msg.replace(/Flupke/g,'%A0'); // &nbsp;
	msg = msg.replace(/ /g,'%20');
	msg = msg.replace(/&/g,'%26');
	msg = msg.replace(/\+/g,'%2B');
	msg = msg.replace(/=/g,'%3D');
	
	GM_xmlhttpRequest({
		headers:{'Content-type': 'application/x-www-form-urlencoded'},
		method:'POST',
		url:'http://www.2m3.net//script_chat.php',
		data:'msg='+msg,
		onload: function(responseDetails) {
			if(!flood) {
				$('#minichat').html(responseDetails.responseText);
			}
		}
	});
}

function switch_couple(nik,couple) {
	var tmp;
	tmp = nik.replace(RegExp(couple[0]),'KOWABUNGA');
	tmp = tmp.replace(RegExp(couple[1]),couple[0]);
	return tmp.replace(RegExp('KOWABUNGA'),couple[1]);
}

cs = ['lI','LI','1l','O0','ij','þb','ßB','oø','uµ','aå','AÅ','2Z','_ ','- ','gq','mn','Ji','æe'];

function modNik(nik) {
	var i,c;
	for(i=0;c=cs[i];++i) {
		if(RegExp('['+c+']').test(nik)) {
			return switch_couple(nik,c);
		}
	}
	tmp = nik[0];
	doublon = false;
	for(i=1;i<nik.length;++i) {
		if(nik[i] == nik[i-1]) {
			doublon = true;
		} else {
			tmp = tmp + nik[i];
		}
	}
	if(doublon) {
		return tmp;
	}
	return nik; // normalement on en arrive jamais là. normalement.
}


function nikShuffle() {
	var i,j,x;
	var niks = getLoggedMembersList();
	var new_niks = new Array();
	for(i=0;i<niks.length;++i) {
		new_niks.push(modNik(niks[i]));
	}
	for(i = new_niks.length; i >0; ) {
		j = parseInt(Math.random() * i);
		x = new_niks[--i];
		new_niks[i] = new_niks[j];
		new_niks[j] = x;
	}
	flood=true;
	sendMC('/go flood');
	for(i=0;i<new_niks.length;++i) {
		sendMC('/nik '+niks[i]+'|'+new_niks[i]);
	}
	sendMC('/quit');
	flood=false;
}

function mc(event) {
	event.preventDefault();
	var msgBox = $(this).find(':text');
	var re_meta_cmd=/^:([a-z]*)( +([^\|]*) *(\| *(.*))?)?$/;
	var msg = msgBox.val();
	msgBox.val('');
	if(!re_meta_cmd.test(msg)) {
		if(stats['user'] == 'guile' && /^\/def/.test(msg)) {
			msgBox.val(msg);
			alert('non, ça suffit comme ça les devinettes');
		} else {
			sendMC(msg);
		}
		return;
	}
	var args=re_meta_cmd.exec(msg);
	var meta_cmd=args[1];
	var arg1=args[3];
	if(arg1 != null) {
		var re = RegExp(arg1.toLowerCase());
	} else {
		var re = RegExp('');
	}
	var arg2=args[5];
	var niks = getLoggedMembersList();
	var noFlood = true;
	switch(meta_cmd) {
		case 'test':
			// test d'expression régulière
			msgBox.val(msg);
			var nikList = '';
			nikList = niks.filter(function() {
				return re.test(this.toLowerCase());
			}).get().join(', ');
			alert('"' + arg1 + '" correspond à : ' + nikList);
			break;
		case 'repost':
			sendMC('/hu repost là bordel');
			break;
		case 'shuffle':
			nikShuffle();
			break;
		case 'flood':
			var flood_how = arg2==null?'ib':arg2
			switch(flood_how) {
				case 'me':
				case 'la':
				case 'lov':
				case 'bel':
				case 'zob':
				case 'hu':
				case 'fis':
					for (i=0;i<arg1.length;++i) sendMC('/'+flood_how+' '+arg1.charAt(i).toUpperCase().replace(' ','FlupkeFlupke'));
					break;
				case 'ib':
					for (i=0;i<arg1.length;++i) sendMC('**'+arg1.charAt(i).toUpperCase().replace(' ','FlupkeFlupke')+'**');
					break;
				default:
					msgBox.val(msg);
					alert('on ne floode pas avec "' + flood_how + '", ça serait un peu stupide');
			}
			break;
		case 'tiny':
			GM_xmlhttpRequest({
				method:'GET',
				url:'http://tinyurl.com/create.php?url='+arg1,
				onload: function(responseDetails) {
					tinyUrl = /<b>(http:\/\/tinyurl.com\/[^<]*)<\/b>/(responseDetails.responseText)[1];
					if (arg2==null) {
						sendMC(tinyUrl);
					} else {
						sendMC(arg2 + ': ' + tinyUrl);
					}
				}
			});
			break;
		case 'lmgtfy':
			if (arg2==null) {
				sendMC('http://letmegooglethatforyou.com/?q=' + arg1);
			} else {
				sendMC(arg2 + ': http://letmegooglethatforyou.com/?q=' + arg1);
			}
			break;
		case 'cfm':
			var hasMatch = false;
			for(i=0;nik=niks[i];++i) {
				if(!re.test(nik.toLowerCase())) {
					continue;
				}
				hasMatch = true;
				var rand = Math.floor(3*Math.random());
				var play;
				switch(rand) {
					case 0: play='ci';break;
					case 1: play='pi';break;
					case 2: play='pa';break;
				}
				sendMC(' /cfm '+nik+' -'+play);
			}
			if(!hasMatch) {
				msgBox.value(msg);
				alert('"' + args[2] + '" ne correspond à aucun membre');
			}
			break;
		case 'lov':
		case 'fis':
		case 'zob':
			noFlood = false;
		case 'hop':
		case 'poh':
		case 'vu':
		case 'out':
		case 'nik':
		case 'in':
		case 'don':
		case 'coi':
		case 'kik':
		case 'kba':
			var cmdArray = new Array();
			for(i=0;nik=niks[i];++i) {
				if(re.test(nik.toLowerCase())) {
					cmdArray.push('/'+meta_cmd+' '+nik+(arg2!=undefined?'|'+arg2:''));
				}
			}
			if(cmdArray.length == 0) {
				msgBox.value(msg);
				alert('"' + args[2] + '" ne correspond à aucun membre');
			}
			if(cmdArray.length>5) {
				if(noFlood) {
					sendMC('/go flood');
				}
				flood=true;
			}
			for(i=0;cmd=cmdArray[i];++i) {
				sendMC(cmd);
			}
			if(cmdArray.length>5) {
				flood=false;
				if(noFlood) {
					sendMC('/quit');
				}
			}
			break;
		default:
			sendMC(msg);
	}
}
// remplacement de l'évenement standard par l'évenement custom
$('form[name=formPost]').bind('submit',mc);
document.getElementsByName('formPost')[0].setAttribute('onsubmit','');


/***********/
/* SMILEYS */
/***********/
var sm_code = Array();
var sm_image = Array();
var sm_count = 78;
sm_code[0]=':)';sm_image[0]='smile';
sm_code[1]='(:';sm_image[1]='smile_rev';
sm_code[2]=':(';sm_image[2]='sad';
sm_code[3]='):';sm_image[3]='sad_rev';
sm_code[4]=':D';sm_image[4]='grin';
sm_code[5]=':p';sm_image[5]='langue';
sm_code[6]=':X';sm_image[6]='kiss';
sm_code[7]=':[';sm_image[7]='mad';
sm_code[8]=':o';sm_image[8]='oh';
sm_code[9]=';)';sm_image[9]='wink';
sm_code[10]='(;';sm_image[10]='wink_rev';
sm_code[11]=':nibz:';sm_image[11]='nibz';
sm_code[12]=':|';sm_image[12]='bof';
sm_code[13]=':dehors:';sm_image[13]='dehors';
sm_code[14]=':dedans:';sm_image[14]='dedans';
sm_code[15]=':bouh:';sm_image[15]='bouh';
sm_code[16]=':zob:';sm_image[16]='chibre';
sm_code[17]=':boobg:';sm_image[17]='boobg';
sm_code[18]=':boobd:';sm_image[18]='boobd';
sm_code[19]=':boobga:';sm_image[19]='boobga';
sm_code[20]=':boobda:';sm_image[20]='boobda';
sm_code[21]=':fist:';sm_image[21]='fist';
sm_code[22]=':kuh:';sm_image[22]='kuh';
sm_code[23]=':boolz:';sm_image[23]='boolz';
sm_code[24]=':glan:';sm_image[24]='glan';
sm_code[25]=':fouf:';sm_image[25]='fouf';
sm_code[26]=':love:';sm_image[26]='heart';
sm_code[27]=':miaou:';sm_image[27]='miaou';
sm_code[28]='-panda-';sm_image[28]='minipanda';
sm_code[29]=':cqq:';sm_image[29]='cqq';
sm_code[30]=':crabe:';sm_image[30]='crabe';
sm_code[31]=':cot:';sm_image[31]='cot';
sm_code[32]=':cotqq:';sm_image[32]='cot_envers';
sm_code[33]=':euf:';sm_image[33]='euf';
sm_code[34]=':bab:';sm_image[34]='babouin';
sm_code[35]=':mqq:';sm_image[35]='mqq';
sm_code[36]=':flan:';sm_image[36]='flan';
sm_code[37]=':moule:';sm_image[37]='moule';
sm_code[38]=':frites:';sm_image[38]='frites';
sm_code[39]=':binouz:';sm_image[39]='binouz';
sm_code[40]=':melon:';sm_image[40]='ptimelon';
sm_code[41]=':gromelon:';sm_image[41]='gromelon';
sm_code[42]=':navet:';sm_image[42]='navet';
sm_code[43]='-pqt-';sm_image[43]='-pqt-';
sm_code[44]=':caca:';sm_image[44]='caca';
sm_code[45]=':malax:';sm_image[45]='malax';
sm_code[46]=':typh:';sm_image[46]='typh';
sm_code[47]=':crawset:';sm_image[47]='crawset';
sm_code[48]=':bob:';sm_image[48]='bob';
sm_code[49]=':yoging:';sm_image[49]='yoging';
sm_code[50]=':zorro:';sm_image[50]='zorro';
sm_code[51]=':captainchibrax:';sm_image[51]='captainchibrax';
sm_code[52]=':serge:';sm_image[52]='serge';
sm_code[53]=':to:';sm_image[53]='to';
sm_code[54]=':rael:';sm_image[54]='rael';
sm_code[55]=':fg:';sm_image[55]='gourg';
sm_code[56]=':azt:';sm_image[56]='azt';
sm_code[57]=':vibrogagne:';sm_image[57]='godwin';
sm_code[58]=':300:';sm_image[58]='300';
sm_code[59]=':mmail:';sm_image[59]='mmail';
sm_code[60]=':zik:';sm_image[60]='zik';
sm_code[61]=':hop:';sm_image[61]='hop';
sm_code[62]=':echo:';sm_image[62]='radar';
sm_code[63]=':bbleu:';sm_image[63]='bbleu';
sm_code[64]=':bbroz:';sm_image[64]='bbroz';
sm_code[65]=':chapo:';sm_image[65]='chapo';
sm_code[66]=':gay:';sm_image[66]='gay';
sm_code[67]=':grunt:';sm_image[67]='grunt';
sm_code[68]=':hal:';sm_image[68]='hal';
sm_code[69]=':mexico:';sm_image[69]='mexico';
sm_code[70]=':momie:';sm_image[70]='momie';
sm_code[71]=':ninja:';sm_image[71]='ninja';
sm_code[72]=':zombie:';sm_image[72]='zombie';
sm_code[73]=':slip:';sm_image[73]='slip';
sm_code[74]=':uzi:';sm_image[74]='uzi';
sm_code[75]=':eponge:';sm_image[75]='eponge';
sm_code[76]=':ahok:';sm_image[76]='ahok';
sm_code[77]=':feu:';sm_image[77]='feu';

function addSmileyList(textInput) {
	var small = (textInput.tagName.toLowerCase() == 'input');
	var theBox = $('<div/>').attr('class','gm_smiley_box ' + (small?'small':'big'));
	var theHelperBox = $('<div/>').attr('class','helper_box').text('#');
	// on construit la liste d'images
	for(var i=0; i<sm_count; ++i) {
		theBox.append($('<img/>')
			.attr({
				src:'/images/smileys/' + sm_image[i] + '.gif',
				alt:sm_code[i]
			})
			.css('margin','1px')
			.bind('click',sm_code[i],function(e) {
				textInput.value = textInput.value + e.data;
				textInput.focus();
			})
			.bind('mouseover',sm_code[i],function(e) {
				theHelperBox.text(e.data);
			})
		);
	}
	theBox.append(theHelperBox);
	if(textInput.name == 'msg') {
		// pour le minichat, on fait comme avant
		$(textInput).parent().append(theBox);
	} else if(textInput.name == 'mm_texte') {
		// pour le corps des mmail, on remplace la petite liste existante
		$('tr:has(img[src*=mm_com_smileys]) ~ tr:gt(1):lt(5)').remove();
		$('tr:has(img[src*=mm_com_smileys]) ~ tr:eq(1)').empty().append(
			$('<td/>').attr({'class':'interieur','colspan':3}).append(theBox)
		);
	} else {
		// sinon on met dans une table à 2 cases
		var td1 = $('<td/>');
		var td2 = $('<td/>');
		$(textInput).before(
			$('<table/>').attr('class','gm_table').append($('<tr/>').append(td1).append(td2))
		);
		if(small) {
			td1.append(textInput);
			td2.append(
				$('<div/>').text('.').css('position','relative').append(
					theBox.css({'top':0,'left':0})
				)
			);
		} else {
			td1.append(theBox);
			td2.append(textInput);
			if($(textInput).height() < $(theBox).height()) {
				$(textInput).height($(theBox).height());
			}
		}
	}
	if(small) {
		theBox.bind('mouseover',function(e) {
			$(this).css({'width':'96px','height':'auto'})
		});
		theBox.bind('mouseout',function(event) {
			$(this).css({'width':'12px','height':'12px'})
		});
	}
}

var sm_textInputs = document.getElementsByTagName('input');
for(i=0;input=sm_textInputs[i];++i) {
	if(input.type == 'text' &&
	(input.name == 'mm_sujet'
	||input.name == 'msg'
	||input.name == 'tube_titre'
	||input.name == 'titre')) {
		addSmileyList(input)
	}
}
var sm_textInputs = document.getElementsByTagName('textarea');
for(i=0;input=sm_textInputs[i];++i) {
	addSmileyList(input)
}

smileyVisibleState();

