/*
SoQ - Simple of Queries Javascript framework
Copyright 2010 by Niko278 & Dealis
http://simpleofqueries.pl/
*/

// ------------------------------------------------------------------------------ Main
window.SoQ=function SoQ(a1){a1=a1.constructor==Array?a1:[a1];for(var y=0,Y=a1.length;y<Y;y++)this[y]=a1[y];this.length=Y;return this}
window.$=function $(a1,a2,a3){if(!a1)return null;if(typeof a1=='string'){if(a1.charAt(0)=='!')return $.html(a1.slice(1),+a2);var r=new SoQ($.dom(a1,a2,a3));r.selector=a1;return r}if(typeof a1=='function')return $.onload(a1);if(a1.constructor==SoQ)return a1;return new SoQ(a1)}
$.version='4.0.0';

// ------------------------------------------------------------------------------ Memory
$.mem={reg:{domInit:/\s*( |\>|\<|\^|\=|\+(?!\d)|\/|\~\~|\~)\s*(?![^\[]*\]|[^\(]*\))/g,domThat:/^this-?/i,domTag:/^(?:this-?)?([a-z0-9]+|\*|\@)/i,domClass:/\.([\w-]+)(?![^\[]*\]|[^\(]*\))/g,domId:/\#([a-zA-Z_\-][\w\-]*)(?![^\[]*\]|[^\(]*\))/,domComma:/\s*\,\s*(?![\d\-])(?![^\[]*\]|[^\(]*\)|[^\{]*\})/g,domAtt:/\[(.*?)\]/g,domFunc:/\:([^\d\-][\w\-]*(\(.+?\))?)/g,domQ:/\{((\-|\d|\:|\+|n|\,|even|odd)+)\}/,domSplit:/ ( |\>|\<|\^|\=|\+(?!\d)|\/|\~\~|\~)(?![^\[]*\]|[^\(]*\))/,domSplitB:/ (?=( |\>|\<|\^|\=|\+(?!\d)|\/|\~\~|\~))(?![^\[]*\]|[^\(]*\))/,domMatch:/(\!)?(\.)?([\w\.-]+)(\!?[\*\~\|\^\$\=\<\>]?\=?)?(.+)?/,space:/\s+/g,color:/\#|rgb|transparent/g,pnum:/^-?\d/,nnum:/-(\d+(\.\d+)?|\.\d+)/g,num:/-?(\d+(\.\d+)?|\.\d+)/g,digit:/\d/g,comma1:/\,\s*/,comma:/\,\s*/g,semicolon:/\s*\;\s*/g,colon:/\s*\:\s*/g,semiColon:/\s*[\;\:]\s*/g,commaSemi:/\s*[\,\;]\s*/g,unit:/[a-z\%]+/gi,numColonNum:/(\d+)\:(\d+)/g,camelCase:/-(.)/g,lowerCase:/[a-z]/g,upperCase:/[A-Z]/g,htmlTag:/\<.+?\>/g,classSpace:/^\s+|\s+$/g,startNum:/^[-\d]/,numUnit:/^-?(\d+(\.\d+)?|\.\d+)(px|\%|em|ex|in|cm|mm|pk|pc)?$/},
func:{no:function(){},hide:function(t,y,o){var r=t[y].slide.hide,h=r=='restore'?'display':r;if(h)t[y].style[h]=h=='display'?'none':'hidden';if(r=='restore')$.mem.func.restore(t,y,o,1)},restore:function(t,y,o,n){var a,b,c={};for(var x in o){a=o[x][n]=='$'?t[y].slide[x]:typeof o[x][n]=='function'?o[x][n].call(t[y],y,t):o[x][n],b=a.toString().slice(0,2);if(t[y].slide.hide=='restore'||b!='+='&&b!='-='&&b!='*='&&b!='/=')c[x]=a}new SoQ(t[y]).css(c)},section:function(a1,a2,a3){var l=[],a2=+a2,a3=+a3;if(a2<a3)for(var q=a2;q<=a3;q++)l[l.length]=q;else for(var q=a2;q>=a3;q--)l[l.length]=q;return l},sort:function(a1,a2){return a1<a2},eventStop:function(){return $.event.stop(this)},toUpper:function(a1,a2){return a2.toUpperCase()},toLower:function(a1){return '-'+a1.toLowerCase()},atext:function(w){for(var x in w)if(w[x])for(var z=0,Z=w[x].length;z<Z;z++)w[x][z][0].style.display='none'}},
obj:{},arr:[],num:0,str:''};

// ------------------------------------------------------------------------------ Methods
//Browser
$.browser=new String(/firefox/gi.test(navigator.userAgent)?'firefox':/opera/gi.test(navigator.userAgent)?'opera':/msie/gi.test(navigator.userAgent)?'msie':/chrome/gi.test(navigator.userAgent)?'chrome':/safari/gi.test(navigator.userAgent)?'safari':'other');
$.browser.version=$.browser=='firefox'||$.browser=='chrome'?navigator.userAgent.match(new RegExp($.browser+"\\/([\\d\\.]+)","i"))[1]:$.browser=='opera'||$.browser=='safari'?navigator.userAgent.match(/version\/([\d\.]+)/i)[1]:$.browser=='msie'?navigator.userAgent.match(/msie ([\d\.]+)/i)[1]:'0';
$.browser.version=parseFloat($.browser.version.split('.')[0]+'.'+$.browser.version.split('.').slice(1).join(''));

// DOM
$.dom=function(a1,a2,a3){if(!a2&&document.querySelectorAll){try{var r=document.querySelectorAll(a1)}catch(e){};if(r)return $.arr(r)}var a1=$.dom.string(a1||'*'),a2=a2||0,r=[];for(var x=0,X=a1.length;x<X;x++)r[x]=$.dom.search(a1[x],a2,a3);if(a1.length>1){for(var x=0,X=r.length;x<X;x++)for(var y=0,Y=r[x].length;y<Y;y++)for(var z=x+1;z<X;z++)if(!a1[x][a1[x].length-1].tag||!a1[z][a1[z].length-1].tag||a1[x][a1[x].length-1].tag==a1[z][a1[z].length-1].tag)for(var q=0,Q=r[z].length;q<Q;q++)if(r[x][y]==r[z][q]){r[x].splice(y--,1);Y--}}return $.merge.apply(0,r)}
$.dom.string=function(a1){for(var s=a1.split($.mem.reg.domComma),r=[],x=0,X=s.length;x<X;x++){if($.dom.cache['s?'+s[x]]){r[x]=$.dom.cache['s?'+s[x]];continue}var t=[],n=s[x].replace($.mem.reg.domInit,' $1');if(!$.dom.Split){for(var k=[(n=n.split($.mem.reg.domSplitB))[0]],y=1,Y=n.length;y<Y;y++){k[k.length]=n[y].charAt(0);k[k.length]=n[y].slice(1)}n=k}else n=n.split($.mem.reg.domSplit);for(var y=0,Y=n.length;y<Y;y+=2){var o={},m=n[y].match($.mem.reg.domThat);if(m)o.that=1;m=n[y].match($.mem.reg.domTag);if(m&&m[1]!='*'&&m[1]!='this')o.tag=m[1];m=n[y].match($.mem.reg.domId);if(m)o.id=m[1];m=n[y].match($.mem.reg.domClass);if(m){o.className=m.join('').replace(/\./g,' ').slice(1);o.classArr=m.join('').split('.').slice(1)}m=n[y].match($.mem.reg.domAtt);if(m){o.att=[];for(var q=0,Q=m.length;q<Q;q++)o.att[q]=m[q].slice(1,-1)}m=n[y].match($.mem.reg.domFunc);if(m){o.func=[];for(var q=0,Q=m.length,k;q<Q;q++){k=k=m[q].indexOf('(');o.func[q]=[~k?m[q].slice(1,k):m[q].slice(1),~k?m[q].slice(k+1,-1):'']}}m=n[y].match($.mem.reg.domQ);if(m)o.q=(','+m[1]).split(',');if(n[y-1]&&n[y-1]!=' ')o.kinship=n[y-1];t[t.length]=o}$.dom.cache['s?'+s[x]]=r[x]=t}return r}
$.dom.search=function(a1,a2,a3){for(var t=a2?a2.constructor==Array||a2.constructor==SoQ?a2:[a2]:[document],p=a3?t:[document],x=0,X=a1.length;x<X;x++){var c=a1[x],s=c.kinship||(x?' ':a3||' '),r=[],y=0,Y=p.length,l;if(s==' '||s=='>'){for(var pc=[];y<Y;y++)if(p[y].nodeType==1||p[y].nodeType==9)pc[pc.length]=p[y];p=pc;y=0;Y=p.length}if(c.tag=='@'){if(s==' '){for(;y<Y;y++)for(var l=$.dom.desc(p[y]),z=0,Z=l.length;z<Z;z++)if(l[z].nodeType==3)r[r.length]=l[z]}else if(s=='>'){for(;y<Y;y++)for(var l=p[y].childNodes,z=0,Z=l.length;z<Z;z++)if(l[z].nodeType==3)r[r.length]=l[z]}else if(s=='+')for(;y<Y;y++){l=p[y];while(l=l.nextSibling)if(l.nodeType==3){r[r.length]=l;break}}else if(s=='/')for(;y<Y;y++){l=p[y];while(l=l.previousSibling)if(l.nodeType==3){r[r.length]=l;break}}else if(s=='~')yy:for(;y<Y;y++){l=p[y];while(l=l.nextSibling)if(l.nodeType==3){for(var z=0,Z=r.length;z<Z;z++)if(l==r[z])continue yy;r[Z]=l}}else if(s=='~~')yy:for(;y<Y;y++){l=p[y];while(l=l.previousSibling)if(l.nodeType==3){for(var z=0,Z=r.length;z<Z;z++)if(l==r[z])continue yy;r[Z]=l}}else for(;y<Y;y++)r.push.apply(r,$.arr(p[y].parentNode.childNodes));if(c.that){zz:for(var l=[],I=t.length,z=0,Z=r.length;z<Z;z++)for(var i=0;i<I;i++)if(r[z]==t[i]){l[l.length]=r[z];continue zz}r=l}if(p.length>1&&s!='~'&&s!='~~'){yy:for(var l=[],y=0,Y=r.length;y<Y;y++){if(s=='=')for(var z=0;z<Z;z++)if(r[y].nodeType!=3||r[y]==p[z])continue yy;for(var z=y+1;z<Y;z++)if(r[y]==r[z])continue yy;l[l.length]=r[y]}r=l}}else{if(s==' ')for(;y<Y;y++)r.push.apply(r,c.id&&(p[y]==document||p[y]==document.body)?[document.getElementById(c.id)]:c.className&&p[y].getElementsByClassName?$.arr(p[y].getElementsByClassName(c.className)):$.arr(p[y].getElementsByTagName(c.tag||'*')));else if(s=='>')for(;y<Y;y++)r.push.apply(r,$.dom.child(p[y],c.tag));else if(s=='<')for(;y<Y;y++)r[r.length]=p[y].parentNode;else if(s=='^')for(;y<Y;y++)r.push.apply(r,$.dom.ancestors(p[y],c.tag));else if(s=='+')for(;y<Y;y++){l=p[y];while(l=l.nextSibling)if(l.nodeType==1){r[r.length]=l;break}}else if(s=='/')for(;y<Y;y++){l=p[y];while(l=l.previousSibling)if(l.nodeType==1){r[r.length]=l;break}}else if(s=='~')yy:for(;y<Y;y++){l=p[y];while(l=l.nextSibling)if(l.nodeType==1&&(!c.tag||l.tagName.toLowerCase()==c.tag)){for(var z=0,Z=r.length;z<Z;z++)if(l==r[z])continue yy;r[Z]=l}}else if(s=='~~')yy:for(;y<Y;y++){l=p[y];while(l=l.previousSibling)if(l.nodeType==1&&(!c.tag||l.tagName.toLowerCase()==c.tag)){for(var z=0,Z=r.length;z<Z;z++)if(l==r[z])continue yy;r[Z]=l}}else for(;y<Y;y++)r.push.apply(r,$.arr(p[y].parentNode.childNodes));if(c.that){zz:for(var l=[],I=t.length,z=0,Z=r.length;z<Z;z++)for(var i=0;i<I;i++)if(r[z]==t[i]){l[l.length]=r[z];continue zz}r=l}if(c.id&&(s!=' '||p[y]!=document&&p[y]!=document.body)){for(var y=0,Y=r.length;y<Y;y++)if(r[y].id==c.id){r=[r[y]];break}if(y==Y)return []}if(p.length>1&&s!='~'&&s!='~~'||s=='='){yy:for(var l=[],Z=p.length,y=0,Y=r.length;y<Y;y++){if(r[y].nodeType!=1||c.tag&&r[y].tagName.toLowerCase()!=c.tag)continue;if(s=='=')for(var z=0;z<Z;z++)if(r[y]==p[z])continue yy;for(var z=y+1;z<Y;z++)if(r[y]==r[z])continue yy;l[l.length]=r[y]}r=l}else if(c.tag&&s!='^'&&s!='>'&&(s!=' '||c.id&&(p[y]==document||p[y]==document.body)||c.className&&document.body.getElementsByClassName)){for(var l=[],y=0,Y=r.length;y<Y;y++)if(r[y].tagName.toLowerCase()==c.tag)l[l.length]=r[y];r=l}if(c.className&&(s!=' '||!document.body.getElementsByClassName)){yy:for(var l=[],Z=c.classArr.length,y=0,Y=r.length;y<Y;y++){for(var z=0;z<Z;z++)if(!~(' '+r[y].className+' ').indexOf(' '+c.classArr[z]+' '))continue yy;l[l.length]=r[y]}r=l}}var F=c.func&&c.func.length,A=c.att&&c.att.length;if(A)for(var i=0;i<A;i++){r=$.dom.att.call(r,c.att[i]);if(!r.length)return []}if(F)for(var i=0;i<F;i++)if($.selector[c.func[i][0]]){r=$.selector[c.func[i][0]].call(r,c.func[i][1]);if(!r.length)return []}if(c.q){c.q[0]=r;r=$.choose.apply(0,c.q)}if(r.length)p=r;else return []}return r}
$.dom.att=function(a1){var m,r=[];if($.dom.cache['a?'+a1])m=$.dom.cache['a?'+a1];else{$.dom.cache['a?'+a1]=m=a1.match($.mem.reg.domMatch);m[2]=m[2]=='class'?'className':m[2]}for(var y=0,Y=this.length;y<Y;y++){var a=m[2]!='.'||m[3]=='href'?this[y].getAttribute(m[3]):$.att(this[y],m[3]),w=0;if(m[3]&&!m[4]&&!m[5]){if(m[1]!='!'&&a||m[1]=='!'&&!a)r[r.length]=this[y];continue}else if(!a)continue;a=a.toString();if(m[3]=='tagName'){a=a.toLowerCase();m[5]=m[5].toLowerCase()}if(m[5]&&$.att(a,m[4],m[5]))r[r.length]=this[y]}return r}
$.dom.create=function(a1,a2,a3){var a2=a2||1,r=[],x=0;if(typeof a1=='string'){for(;x<a2;x++)r[x]=document.createElement(a1);return r}if(a1.constructor==Object){for(;x<a2;x++)r[x]=typeof a1[y]=='string'?document.createTextNode(a1):document.createElement(a1.tag||'div');var s=new SoQ(r);for(var x in a1)if(x.slice(0,2)=='on')s.on(x.slice(2),a1[x]);else if(x!='tag'&&s[x])s[x](a1[x]);return r}for(var a1=$(a1);x<a2;x++)r.push.apply(r,$.arr(a1.clone(a3)));return r}
$.dom.html=function(a1,a2){for(var r=[],d,a2=a2||1,x=0;x<a2;x++){d=document.createElement('div');d.innerHTML=a1;r.push.apply(r,$.arr(d.childNodes))}return r}
$.dom.desc=function(a1){for(var r=[],c=a1.childNodes,q=0,Q=c.length;q<Q;q++){r[r.length]=c[q];if(c[q].childNodes)r.push.apply(r,$.dom.desc(c[q]))}return r}
$.dom.child=function(a1,a2){if(a2){for(var r=[],c=a1.childNodes,q=0,Q=c.length;q<Q;q++)if(c[q].nodeType==1&&c[q].tagName.toLowerCase()==a2)r[r.length]=c[q];return r}for(var r=[],c=a1.childNodes,q=0,Q=c.length;q<Q;q++)if(c[q].nodeType==1)r[r.length]=c[q];return r}
$.dom.ancestors=function(a1,a2){if(a2){var r=[];while(a1=a1.parentNode)if(a1.tagName==a2)r[r.length]=a1;return r}var r=[];while(a1=a1.parentNode)r[r.length]=a1;return r}
$.dom.cache={}; $.dom.cacheN={}; $.dom.Split='soq'.split(/(o)/).length==3;

// Cookie
$.cookie=function(a1,a2,a3,a4,a5,a6){return arguments.length==1?$.cookie.get(a1):!a2?$.cookie.del(a1,a2):$.cookie.set(a1,a2,a3,a4,a5,a6)}
$.cookie.get=$.cookie.read=function(a1){return (document.cookie.match(RegExp('(?:^|\\W)(?:'+a1+')\=([^;]*)(?:$|\;)'))||[0,null])[1]}
$.cookie.set=$.cookie.add=function(a1,a2,a3,a4,a5,a6){return document.cookie=escape(a1)+'='+escape(a2)+(a3?';expires='+$.time().set(a3).utc():'')+(a4?';path='+a4:'')+(a5?';domain='+a5:'')+(a6?';secure':'')+'; '}
$.cookie.del=$.cookie.remove=function(a1){return document.cookie=escape(a1)+'=;expires='+$.time().utc()}

// Event
$.event={};
$.event.add=function(a1,a2,a3,a4){return $.event.type[a1]=[a2,$.func(a3),a4?$.func(a4):0]}
$.event.init=function(e){var e=e||window.event||{};if(!e.element){e.element=e.srcElement||e.target;e.related=e[(e.element==e.fromElement?'to':'from')+'Element']||e.relatedTarget;e.wheel=e.wheelDelta?e.wheelDelta<0?1:-1:e.detail>0?1:-1;e.key=e.which||e.keyCode||e.charCode;e.fixedX=e.clientX;e.fixedY=e.clientY;e.mouseX=e.clientX+(document.body.scrollLeft||document.documentElement.scrollLeft);e.mouseY=e.clientY+(document.body.scrollTop||document.documentElement.scrollTop);e.mouseL=e.layerX||e.offsetX;e.mouseT=e.layerY||e.offsetY;e.push=$.browser=='msie'?[0,0,2,0,1][e.button]:e.button;e.stop=$.mem.func.eventStop}return e}
$.event.key={backspace:8,tab:9,enter:13,shift:16,ctrl:17,alt:18,pause:19,capslock:20,escape:27,space:32,pageup:33,pagedown:34,end:35,home:36,left:37,up:38,right:39,down:40,insert:45,del:46,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,semicolon:59,a:65,b:66,c:67,d:68,e:69,f:70,g:71,h:72,i:73,j:74,k:75,l:76,m:77,n:78,o:79,p:80,q:81,r:82,s:83,t:84,u:85,v:86,w:87,x:88,y:89,z:90,num0:96,num1:97,num2:98,num3:99,num4:100,num5:101,num6:102,num7:103,num8:104,num9:105,add:107,sub:109,comma:188,dot:190,slash:191,openbracket:219,backslash:220,closebraket:221,singlequote:222};
$.event.mouse=function(e){e=e||window.event;return{x:e.clientX+(document.body.scrollLeft||document.documentElement.scrollLeft),y:e.clientY+(document.body.scrollTop||document.documentElement.scrollTop),l:e.layerX||e.offsetX,t:e.layerY||e.offsetY}}
$.event.stop=function(e){e=e||window.event;if(e.stopPropagation)e.stopPropagation();e.cancelBubble=1;e.preventDefault?e.preventDefault():e.returnValue=false;return e}
$.event.isNumber=function(e){var k=e.which||event.keyCode;return (k>47&&k<58)||(k>95&&k<106)}

// Key
$.key=function(a1){if(!$.key.init){$.key.init=1;new SoQ(document).on('keydown',"if(!$.key.count++)for(var x=0,X=$.key.all.down.length;x<X;x++)if(!$.key.all.down[x].key||arguments[0].key==$.key.all.down[x].key)$.key.all.down[x].apply(this,arguments);if($.key.stop)arguments[0].stop()",'$.key').on('keypress',"for(var x=0,X=$.key.all.press.length;x<X;x++)if(!$.key.all.press[x].key||arguments[0].key==$.key.all.press[x].key)$.key.all.press[x].apply(this,arguments);if($.key.stop)arguments[0].stop()",'$.key').on('keyup',"for(var x=0,X=$.key.all.up.length;x<X;x++)if(!$.key.all.up[x].key||arguments[0].key==$.key.all.up[x].key)$.key.all.up[x].apply(this,arguments);$.key.count=0;if($.key.stop)arguments[0].stop()",'$.key')}if(a1.key)a1.key=$.event.key[a1.key]||0;else a1.key=0;if(a1.down){var f=a1.that?$.func.that(a1.down,a1.that):$.func(a1.down);f.key=a1.key;$.key.all.down[$.key.all.down.length]=f}if(a1.press){var f=a1.that?$.func.that(a1.press,a1.that):$.func(a1.press);f.key=a1.key;$.key.all.press[$.key.all.press.length]=f}if(a1.up){var f=a1.that?$.func.that(a1.up,a1.that):$.func(a1.up);f.key=a1.key;$.key.all.up[$.key.all.up.length]=f}}
$.key.down=function(a1,a2){$.key({down:a1,key:a2})}
$.key.press=function(a1,a2){$.key({press:a1,key:a2})}
$.key.up=function(a1,a2){$.key({up:a1,key:a2})}
$.key.all={down:[],press:[],up:[]}; $.key.count=0; $.key.init=0;

// CSS
$.css=function(a1,a2,a3){if(a2.charAt(0)=='!')return $.css.i(a1,a2.slice(1),a3);if(a2=='float')a2=$.css.Float;var px=a2=='background-position-x',py=a2=='background-position-y',a3=a3||'px',s=$.camelCase(a2),a2=px||py?'background-position':a2,q=!window.getComputedStyle,g=q?a1.currentStyle:window.getComputedStyle(a1,null),r=(q?g[s]:g.getPropertyValue(a2))+'';if(s=='position'||s=='overflow'||s=='display'||s=='visibility'||s=='zIndex')return r;if(px)return r.split(' ')[0];if(py)return r.split(' ')[q?0:1];if(a2=='opacity')return !$.css.Opacity?a1.op==undefined?'1':a1.op:r;if(~r.search($.mem.reg.color))return $.color[a3=='rgb'?'rgb':a3=='hsb'?'hsb':'hex'](r);if((a2=='left'||a2=='top')&&(r=='auto'||a1.currentStyle)&&(q?a1.currentStyle.position:window.getComputedStyle(a1,null).getPropertyValue('position'))=='absolute')r=a2=='left'?a1.offsetLeft-parseFloat($.css(a1,'margin-left'))+'px':a2=='top'?a1.offsetTop-parseFloat($.css(a1,'margin-top'))+'px':r;if(r=='auto'){if(a2=='width')r=a1.offsetWidth-(q?parseFloat(g.paddingLeft)-parseFloat(g.paddingRight)-(parseFloat(g.borderLeftWidth)||0)-(parseFloat(g.borderRightWidth)||0):parseFloat(g.getPropertyValue('padding-left'))-parseFloat(g.getPropertyValue('padding-right'))-parseFloat(g.getPropertyValue('border-left-width'))-parseFloat(g.getPropertyValue('border-right-width')))+'px';else if(a2=='height')r=a1.offsetHeight-(q?parseFloat(g.paddingTop)-parseFloat(g.paddingBottom)-(parseFloat(g.borderTopWidth)||0)-(parseFloat(g.borderBottomWidth)||0):parseFloat(g.getPropertyValue('padding-top'))-parseFloat(g.getPropertyValue('padding-bottom'))-parseFloat(g.getPropertyValue('border-top-width'))-parseFloat(g.getPropertyValue('border-bottom-width')))+'px';else r='0px'}else if(a2=='line-height'&&r.charAt(0)=='-')r='0px';if(r=='normal'||r=='medium')return a3=='num'?0:'0'+(a3||'px');if(r.slice(-a3.length)==a3)return r;if(r.slice(-2)!='px'&&~r.search($.mem.reg.startNum)){var p=~s.search(/top|bottom|height/)?'top':'left',c=a1.style[p],m=r.match($.mem.reg.unit)[0];a1.style[p]=r.slice(0,-m.length)+m;r=a1['offset'+(p=='top'?'Top':'Left')]+'px';a1.style[p]=c}if(a3!='px'&&a3!='num'&&~r.search($.mem.reg.pnum)){var c=a1.style[s]||'';a1.style[s]=1+a3;r=parseFloat(r)/parseFloat($.css(a1,a2))+a3;a1.style[s]=c}return a3=='num'?parseFloat(r):r}
$.css.i=function(a1,a2,a3){var d=$.css(a1,'display'),s=a1.style.display,r;if(d=='none'){a1.style.display='';d=$.css(a1,'display')}if(d=='none')a1.style.display=$.css.display(a1.tagName);r=$.css(a1,a2,a3);a1.style.display=s;return r}
$.css.string=function(a1){if(typeof a1!='object')return a1;var r='';for(var q in a1)r+=$.unCamelCase(q)+':'+a1[q]+';';return r}
$.css.object=function(a1){if(typeof a1!='string')return a1;var r={},s=a1.split($.mem.reg.semicolon);for(var x=0,X=s.length;x<X;x++){var d=s[x].split($.mem.reg.colon);if(s[x]!='')r[$.camelCase(d[0])]=d[1]||''}return r}
$.css.display=function(a1){if($.css.display[a1])return $.css.display[a1];var s=new SoQ(document.body).create(a1).css('width:0;height:0;border:0;margin:0;padding:0;left:0;top:0'),r=s.css('display');s.remove();return $.css.display[a1]=r}
$.css.displayed=function(a1){var s=a1.style.display;if(s&&s!='none')return s;var r=$.css(a1,'display');if(r=='none'){a1.style.display='';r=$.css(a1,'display')}if(r=='none')r=$.css.display(a1.tagName);a1.style.display=s;return r}
$.css.ex=function(a1,a2,a3,a4){var r=a4.toString(),rs=r.slice(0,2);if(rs=='+='||rs=='-='||rs=='*='||rs=='/=')var u=r.match($.mem.reg.unit),u=u?u[0]:0,r=parseFloat(r.slice(2)),rc=parseFloat($.css(a1[a2],a3,u)),r=(rs=='+='?rc+r:rs=='-='?rc-r:rs=='*='?rc*r:rc/r)+u;return a3!='opacity'&&a3!='z-index'&&r==parseFloat(r)?r+'px':r}
$.css.sepObj=function(a1){var a1=$.css.object(a1),r={},o;for(var x in a1)if(o=$.css.sep[x]){if(a1[x].constructor==Array){r[o[0]]=[];for(var y=0,Y=a1[x].length;y<Y;y++){var s=a1[x][y].split($.mem.reg.space);r[o[0]][y]=s[0];r[o[1]][y]=s[1]||s[0];r[o[2]][y]=s[2]||s[0];r[o[3]][y]=s[3]||s[1]||s[0]}}else if(typeof a1[x]=='string'||typeof a1[x]=='number'){var s=a1[x].toString().split($.mem.reg.space);r[o[0]]=s[0];r[o[1]]=s[1]||s[0];r[o[2]]=s[2]||s[0];r[o[3]]=s[3]||s[1]||s[0]}}else r[x]=a1[x];return r}
$.css.sepStr=function(a1){for(var x in $.css.sep){var s='';for(var y=0;y<4;y++)s+=','+$.unCamelCase($.css.sep[x][y]);a1=a1.replace($.unCamelCase(x),s.slice(1))}return a1}
$.css.sep={borderWidth:['borderTopWidth','borderRightWidth','borderBottomWidth','borderLeftWidth'],borderColor:['borderTopColor','borderRightColor','borderBottomColor','borderLeftColor'],margin:['marginTop','marginRight','marginBottom','marginLeft'],padding:['paddingTop','paddingRight','paddingBottom','paddingLeft'],backgroundPosition:['backgroundPositionX','backgroundPositionY']};
$.css.bg={}; $.css.Float=$.browser=='msie'?'styleFloat':'cssFloat'; $.css.Opacity=document.documentElement.style.opacity!=undefined;
$.css.bg.x=document.documentElement.currentStyle&&document.documentElement.currentStyle.backgroundPositionX?function(a1,a2){a1.style.backgroundPositionX=a2}:function(a1,a2){a1.style.backgroundPosition=a2+' '+$.css(a1,'background-position-y')}
$.css.bg.y=document.documentElement.currentStyle&&document.documentElement.currentStyle.backgroundPositionY?function(a1,a2){a1.style.backgroundPositionY=a2}:function(a1,a2){a1.style.backgroundPosition=$.css(a1,'background-position-x')+' '+a2}
$.css.opacity=function(a1,a2){a1.style.opacity=a2;a1.style.filter=a2==1?'':'alpha(opacity='+(a2*100)+')';if(a2===''){a1.style.filter='';a2=1}a1.op=a2.toString()}

// Color
$.color={black:'#000000',maroon:'#800000',green:'#008000',olive:'#808000',navy:'#000080',purple:'#800080',teal:'#008080',silver:'#c0c0c0',gray:'#808080',red:'#ff0000',lime:'#00ff00',yellow:'#ffff00',blue:'#0000ff',fuchsia:'#ff00ff',aqua:'#00ffff',white:'#ffffff'};
$.color.rgb=function(a1){a1=$.color[a1]||a1;if(a1.indexOf('rgba')!=-1)return 'rgb'+a1.slice(4,a1.lastIndexOf(','))+')';if(a1.indexOf('rgb')!=-1)return a1;if(a1.indexOf('#')!=-1)return 'rgb('+((a1=a1.split('')).length==7?[parseInt(a1[1]+a1[2],16),parseInt(a1[3]+a1[4],16),parseInt(a1[5]+a1[6],16)]:[parseInt(a1[1]+a1[1],16),parseInt(a1[2]+a1[2],16),parseInt(a1[3]+a1[3],16)])+')';if(a1.indexOf('hsb')!=-1){var a1=$.brackets(a1),h=(a1[0]%360)/60,s=a1[1]/100,v=a1[2]/100,f=Math.floor(h),i=h-f,p=v*(1-s),q=v*(1-(s*i)),t=v*(1-(s*(1-i))),r,g,b;switch(f){case 0:r=v;g=t;b=p;break;case 1:r=q;g=v;b=p;break;case 2:r=p;g=v;b=t;break;case 3:r=p;g=q;b=v;break;case 4:r=t;g=p;b=v;break;case 5:r=v;g=p;b=q}return 'rgb('+[(r*255).toFixed(),(g*255).toFixed(),(b*255).toFixed()]+')'}return a1}
$.color.hex=function(a1){if(a1.indexOf('rgba')!=-1)return $.color.transparent;if(a1.indexOf('#')!=-1)return a1.length==7?a1:'#'+a1.charAt(1)+a1.charAt(1)+a1.charAt(2)+a1.charAt(2)+a1.charAt(3)+a1.charAt(3);if(a1.indexOf('rgb')!=-1){var a1=$.brackets(a1),r1=Math.round(a1[0]).toString(16),r2=Math.round(a1[1]).toString(16),r3=Math.round(a1[2]).toString(16);return '#'+(r1.length==1?'0'+r1:r1)+(r2.length==1?'0'+r2:r2)+(r3.length==1?'0'+r3:r3)}if(a1.indexOf('hsb')!=-1)return $.color.hex($.color.rgb(a1));return $.color[a1]||a1}
$.color.hsb=function(a1){if(a1.indexOf('hsb')!=-1)return a1;var a1=$.brackets($.color.rgb(a1)),i=Math.min(a1[0],a1[1],a1[2]),a=Math.max(a1[0],a1[1],a1[2]),d=a-i,h=(a1[0]==a?(a1[1]-a1[2])/(d||1):a1[1]==a?2+(a1[2]-a1[0])/d:4+(a1[0]-a1[1])/d)*60;return 'hsb('+(h<0?h+360:h).toFixed()+','+((255*d/a)*100/255).toFixed()+','+(a*100/255).toFixed()+')'}

// Time
$.intervals={};
$.interval=function(a1,a2){if(this.constructor!=$.interval)return new $.interval(a1,a2);if(a2)for(var x in a2)this[x]=a2[x];this.call=Function($.interval.call);this.call.t=this;this.func=$.func(a1);this.callback=$.func(this.callback);this.arg=$.arr.simple(this.arg||[]);this.that=this.that||this;this.carg=$.arr.simple(this.carg||this.arg);this.cthat=this.cthat||this.that;if(typeof this.delay!='undefined'){var f=function(t){t=arguments.callee.t;t.interval=setInterval(t.call,t.time);t.call()};f.t=this;this.interval=setTimeout(f,this.delay)}else this.interval=setInterval(this.call,this.time);return this}
$.interval.prototype={stop:function(a1){clearInterval(this.interval);this.interval=0;if(a1){var f=function(t){t=arguments.callee.t;this.interval=setInterval(this.call,this.time)};f.t=this;setTimeout(f,a1)}return this},start:function(){if(!this.interval)this.interval=setInterval(this.call,this.time);return this},toString:function(){return "[object Interval]"},constructor:$.interval,time:1000,repeat:1,index:1};
$.interval.call="var t=arguments.callee.t;t.func.interval=t;t.func.apply(t.that,t.arg);delete t.func.interval;if(t.index==t.repeat){clearInterval(t.interval);t.callback.interval=t;t.callback.apply(t.cthat,t.carg);delete t.callback.interval}t.index++";
$.time=function(a1,a2,a3,a4,a5,a6,a7){if(this.constructor!=$.time)return new $.time(a1,a2,a3,a4,a5,a6,a7);var n=new Date();if(typeof a1=='string'&&!a2){var d=a1.match(/(\d+)(?:[\-\.](\d+))?(?:[\-\.](\d+))?/)||[0,n.getDate(),n.getMonth()+1,n.getFullYear()],h=a1.match(/(\d+)\:(\d+)(?:\:(\d+))?/)||[0,0,0,0];this.date=new Date(+d[3]||n.getFullYear(),d[2]?d[2]-1:n.getMonth(),+d[1],+h[1],+h[2],+h[3]||0);}else this.date=a1?new Date(a3||n.getFullYear(),a2?a2-1:n.getMonth(),a1||1,a4||0,a5||0,a6||0,a7||0):new Date();return this}
$.time.diff=function(a1,a2){this.date=a1.date;this.date.setTime((a2.date?a2.date.getTime():$.time.apply($.time,$.arr(arguments).slice(1)).date.getTime())-a1.date.getTime());return this}
$.time.prototype={ms:function(){return this.date.getTime()},second:function(){return this.date.getSeconds()},minute:function(){return this.date.getMinutes()},hour:function(){return this.date.getHours()},day:function(){return this.date.getDate()},dayWeek:function(){return this.date.getDay()},dayYear:function(){for(var r=0,y=this.date.getFullYear(),x=1,X=this.date.getMonth()+1;x<X;x++)r+=$.time.days(x,y);return r+this.date.getDate()},week:function(){return Math.round(this.dayYear()/7)},month:function(){return this.date.getMonth()+1},year:function(){return this.date.getFullYear()},diff:function(a1){return new $.time.diff(this,a1?a1.constructor==$.time?a1:$.time.apply(0,arguments):$.time())},set:function(a1){this.date.setTime(this.date.getTime()+a1);return this},utc:function(){return this.toUTCString()},string:function(a1){a1=this.date['get'+(a1=='year'?'FullYear':a1=='month'?'Month':a1=='day'?'Date':a1=='hour'?'Hours':a1=='minute'?'Minutes':a1=='second'?'Seconds':'Time')]();if(a1=='month')a1++;return a1<10?'0'+a1:a1},toString:function(a1){return (this.date.getDate()<10?'0'+this.date.getDate():this.date.getDate())+'.'+(this.date.getMonth()+1<10?'0'+(this.date.getMonth()+1):this.date.getMonth())+'.'+this.date.getFullYear()+(a1?' '+(this.date.getHours()<10?'0'+this.date.getHours():this.date.getHours())+':'+(this.date.getMinutes()<10?'0'+this.date.getMinutes():this.date.getMinutes())+':'+(this.date.getSeconds()<10?'0'+this.date.getSeconds():this.date.getSeconds()):'')},constructor:$.time};
$.time.diff.prototype={count:function(a1){a1=this.date.getTime()/a1;return Math[a1<0?'ceil':'floor'](a1)},ms:function(a1){return this.date.getTime()},second:function(a1){return this.count(1000)-(a1?this.count(60000)*60:0)},minute:function(a1){return this.count(60000)-(a1?this.count(3600000)*60:0)},hour:function(a1){return this.count(3600000)-(a1?this.count(86400000)*24:0)},day:function(a1){return this.count(86400000)-(a1?a1=='week'?this.count(604800000)*7:this.count(86400000*365)*365:0)},week:function(a1){return this.count(604800000)-(a1?this.count(86400000*365)*365:0)},year:function(a1){return this.count(86400000*365)},set:function(a1){this.date.setTime(this.date.getTime()+a1);return this},toString:function(){return this.date.getTime()},constructor:$.time};
$.time.days=function(a1,a2){return !a1?new Date(a2,1,29).getMonth()==1?366:365:$.time.days.arr[a1-1]||(a1==2?new Date(a2||new Date().getFullYear(),1,29).getMonth()==1?29:28:0)}
$.time.days.arr=[31,0,31,30,31,30,31,31,30,31,30,31];

// Ajax
$.ajax=function(a1,a2){if(this.constructor!=$.ajax)return new $.ajax(a1,a2);a1=typeof a1=='string'?{url:a1,done:a2}:a1||{};for(var x in a1)this[x]=a1[x];this.link=$.arr.simple(this.url);this.success=$.func(this.success);this.error=$.func(this.error);this.done=$.func(this.done);this.loading=$.func(this.loading);return this}
$.ajax.prototype={run:function(a1){if(!arguments.callee.interval&&(this.time||this.repeat)){this.interval=$.interval(arguments.callee,{that:this,arg:arguments,time:this.time||$.ajax.time,repeat:this.repeat||1,delay:this.delay});return this}this.all=[];for(var a1=$.json.parms(a1||this.parms||''),o={done:0,success:0,error:0,all:this.link.length},n=0,N=this.queue?1:this.link.length;n<N;n++)$.ajax.step.call(this,o,n,a1);return this},stop:function(){this.interval.stop();return this},toString:function(){return "[object Ajax]"},constructor:$.ajax,queue:0,dir:''};
$.ajax.step=function(o,n,p){var r=$.request(),f=function(){return $.ajax.statechange.apply(arguments.callee.that,arguments.callee.arg)};this.request=r;f.that=this;f.arg=[r,o,n,p];r.onreadystatechange=f;if(!this.type&&$.ajax.type=='get'||this.type.toLowerCase()=='get'){r.open("GET",this.dir+this.link[n]+'?'+p,true);r.send(null)}else if(!this.type&&$.ajax.type=='post'||this.type.toLowerCase()=='post'){r.open("POST",this.dir+this.link[n],true);r.setRequestHeader("Content-type","application/x-www-form-urlencoded");r.setRequestHeader("Content-length",p.length);r.setRequestHeader("Connection","close");r.send(p)}else if(!this.type&&$.ajax.type=='head'||this.type.toLowerCase()=='head'){r.open("HEAD",this.dir+this.link[n],true);r.send(p)}}
$.ajax.statechange=function(r,o,n,p,t){o.index=n;if(r.readyState==4){o.done++;if(this.soq){t=document.createElement('div');t.innerHTML=r.responseText;t=typeof this.soq=='string'?new SoQ(t).desc(this.soq):new SoQ($.arr(t.childNodes));if(!this.all.length)this.all=t;else this.all=this.all.add($.arr(t))}else this.all[this.all.length]=t=this.json?typeof this.json=='string'||typeof this.json=='function'?$.arr.filter($.json.object(r.responseText),this.json):$.json.object(r.responseText):r.responseText;if(r.status==200)this.success.call(this.that||this,t,this,(o.success++,o));else this.error.call(this.that||this,t,this,(o.error++,o));if(o.done==o.all)this.done.call(this.that||this,this.all,this,o);else if(this.queue)$.ajax.step.call(this,o,++n,p)}else this.loading.call(this.that||this,t,this,o)}
$.request=function(){return window.XMLHttpRequest?new XMLHttpRequest():window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):false}

// JSON
$.json=function(a1,a2,a3){var o=typeof a2=='object'?a2:a3||{};o.url=a1;o.success=typeof a2=='function'||typeof a2=='string'?o.success?$.func([a2,o.success]):a2:typeof a3=='function'||typeof a3=='string'?o.success?$.func([a3,o.success]):a3:'';o.json=o.json||1;return $.ajax(o).run()}
$.json.parms=function(a1){if(typeof a1=='string')return a1;var t=[];for(var x in a1)if(typeof a1[x]=='object'){if(a1[x].constructor==Array)for(var z=0,Z=a1[x].length;z<Z;z++)t[t.length]=x+"[]="+encodeURI(a1[x][z]);else for(var z in a1[x])t[t.length]=x+"["+z+"]="+encodeURI(a1[x][z])}else t[t.length]=x+"="+encodeURI(a1[x]);return t.join("&")}
$.json.object=function(a1){return eval("("+a1+")")}

// Selection
$.selection=function(){return document.getSelection?document.getSelection():document.selection.createRange().text}
$.selection.init=function(){$('input[type==text|password],textarea').on('focus',"$.selection.element=this",'$.selection')}
$.selection.set=function(a1,a2,a3){a3=typeof a3=='undefined'?$.selection.element:a3.constructor==SoQ?a3[0]:a3;if(!a3)return;a1=typeof a1=='undefined'?0:a1<0?a3.value.length+a1:a1;a2=typeof a2=='undefined'?a1:a2<0?a3.value.length+a2:a2;a3.focus();if(a3.setSelectionRange)a3.setSelectionRange(a1,a2);else if(a3.createTextRange){var r=a3.createTextRange();r.collapse(true);r.moveEnd('character',a2);r.moveStart('character',a1);r.select()}}
$.selection.replace=function(a1,a2,a3){a3=typeof a3=='undefined'?$.selection.element:a3.constructor==SoQ?a3[0]:a3;a3.focus();if(!a3)return;if(a3.setSelectionRange){var a=a3.selectionStart,b=a3.selectionEnd;a3.value=a3.value.slice(0,a)+a1+a3.value.slice(b);if(a2)a3.blur();else a3.setSelectionRange(a,a+a1.length)}else if(document.selection){var r=document.selection.createRange(),c=r.text!='';r.text=a1;if(!a2){r.moveStart('character',-a1.length);r.select()}}}
$.selection.element=0;

// DOM
$.selector={hidden:function(){for(var r=[],y=0,Y=this.length;y<Y;y++)if($.css(this[y],'display')=='none')r[r.length]=this[y];return r},visible:function(){for(var r=[],y=0,Y=this.length;y<Y;y++)if($.css(this[y],'display')!='none')r[r.length]=this[y];return r},empty:function(){for(var r=[],y=0,Y=this.length;y<Y;y++)if(!~this[y].innerHTML.search(/\S/))r[r.length]=this[y];return r},noempty:function(){for(var r=[],y=0,Y=this.length;y<Y;y++)if(~this[y].innerHTML.search(/\S/))r[r.length]=this[y];return r},contains:function(a1){for(var r=[],y=0,Y=this.length;y<Y;y++)if(~this[y].innerHTML.replace($.mem.reg.htmlTag,'').indexOf(a1))r[r.length]=this[y];return r},not:function(a1){for(var a=$.dom(a1),r=[],y=0,Y=this.length;y<Y;y++)if(!$.contains(a,this[y]))r[r.length]=this[y];return r},'only-child':function(){yy:for(var r=[],y=0,Y=this.length;y<Y;y++){for(var t=this[y].tagName,l=this[y].parentNode.childNodes,i=0,I=l.length;i<I;i++)if(l[i].nodeType==1&&l[i]!=this[y])continue yy;r[r.length]=this[y]}return r},'only-of-type':function(){yy:for(var r=[],y=0,Y=this.length;y<Y;y++){for(var t=this[y].tagName,l=this[y].parentNode.childNodes,i=0,I=l.length;i<I;i++)if(l[i]!=this[y]&&l[i].tagName==t)continue yy;r[r.length]=this[y]}return r},filter:function(a1){yy:for(var a1=$(a1,this),X=a1.length,r=[],y=0,Y=this.length;y<Y;y++)for(var x=0;x<X;x++)if(this[y]==a1[x]){r[r.length]=this[y];continue yy}return r},css:function(a1){var m,r=[];if($.dom.cache['a?'+a1])m=$.dom.cache['a?'+a1];else $.dom.cache['a?'+a1]=m=a1.match($.mem.reg.domMatch);for(var y=0,Y=this.length;y<Y;y++){var a=$.css(this[y],m[3]),w=0;if(m[3]&&!m[4]&&!m[5]){if(m[1]!='!'&&a||m[1]=='!'&&!a)r[r.length]=this[y];continue}else if(!a)continue;a=a.toString();if(m[5]&&$.att(a,m[4],m[5]))r[r.length]=this[y]}return r}};
$.create=function(a1,a2,a3){return new SoQ($.dom.create(a1,a2,a3))}
$.html=function(a1,a2,a3){return new SoQ($.dom.html(a1,a2,a3))}
$.onload=function(a1){if($.ready)return a1();if(window.addEventListener)window.addEventListener('DOMContentLoaded',a1,false);else if(window.attachEvent)window.attachEvent('onload',a1);else window.onload=a1}
$.offsetLeft=document.documentElement.currentStyle?function(a1){return a1.offsetLeft-(a1.offsetParent?parseInt($.css(a1.offsetParent,'border-left-width')):0)}:function(a1){return a1.offsetLeft}
$.offsetTop=document.documentElement.currentStyle?function(a1){return a1.offsetTop-(a1.offsetParent?parseInt($.css(a1.offsetParent,'border-top-width')):0)}:function(a1){return a1.offsetTop}
$.windowX=function(){return window.innerWidth||document.documentElement.offsetWidth}
$.windowY=function(){return window.innerHeight||document.documentElement.offsetHeight}
$.innerX=function(){return document.documentElement.scrollWidth}
$.innerY=function(){return document.documentElement.scrollHeight}
$.scrollX=function(){return document.documentElement.scrollLeft||document.body.scrollLeft}
$.scrollY=function(){return document.documentElement.scrollTop||document.body.scrollTop}
$.ready=0; $.onload(function(){$.ready=1});

// Functions
$.func=function(a1){if(typeof a1=='string')return new Function(a1);if(typeof a1=='function')return a1;if(!a1)return $.mem.func.no;return $.func.arr(a1)}
$.func.arr=function(a1){var f=Function("var a=arguments.callee,f=a.array;for(var q=0,Q=f.length;q<Q;q++)(typeof f[q]=='function'?f[q]:Function(f[q])).apply(a.that||this,a.arg||arguments)");f.array=[];for(var a1=$.arr.simple(a1),x=0,X=a1.length;x<X;x++)f.array[x]=$.func(a1[x]);return f}
$.func.toggle=function(){var r=function(){var a=arguments.callee;return a.f[a.n++%a.f.length].apply(this,arguments)};r.n=0;r.f=[];for(var x=0,X=arguments.length;x<X;x++)r.f[x]=$.func(arguments[x]);return r}
$.func.time=function(a1,a2,a3){for(var a1=$.func(a1),a2=a2?$.arr.simple(a2):[],a3=a3||1,t=new Date().getTime(),x=0;x<a3;x++)a1.apply(0,a2);return (new Date().getTime()-t)/a3}
$.func.arg=function(a1,a2){var f=Function("return arguments.callee.f.apply(this,arguments.callee.a)");f.f=$.func(a1);f.a=$.arr.simple(a2);return f}
$.func.that=function(a1,a2){var f=Function("return arguments.callee.f.apply(arguments.callee.t,arguments)");f.f=$.func(a1);f.t=a2;return f}

// Numbers
$.num=function(a1){return parseFloat(a1.toString())}
$.num.format=function(a1,a2){var a2=a2||{},a1=typeof a2.round=='undefined'||a2.round===false?a1:a1.toFixed(a2.round),a1=a1.toString().split('.');a1[1]=a1[1]||'0';a1[0]=typeof a2.before=='undefined'||a2.before===false||a1[0].length>=a2.before?a1[0]:new Array(a2.before-a1[0].length+1).join('0')+a1[0];a1[1]=typeof a2.after=='undefined'||a2.after===false||a1[1].length>=a2.after?a1[1]:a1[1]+new Array(a2.after-a1[1].length+1).join('0');if(a2.separate)for(var x=a1[0].length-3;x>0;x-=3)a1[0]=a1[0].slice(0,x)+a2.separate+a1[0].slice(x);return a2.after===0?a1[0]:a2.before===0?a1[1]:a1.join(a2.decimal||'.')}
$.floor=function(a1,a2){return a2?(a1-((a1%a2).toFixed(9)==a2.toFixed(9)?0:a1%a2)).toFixed(9):Math.floor(a1)}
$.round=function(a1,a2){return a2?(a1%a2<a2/2?a1-a1%a2:a1+a2-(a1%a2)).toFixed(9):Math.round(a1)}
$.ceil=function(a1,a2){return a2?(a1<1?a1-((a1-a2)%a2):a1-1+a2-((a1-1)%a2)).toFixed(9):Math.ceil(a1)}
$.range=function(a1,a2,a3){a2=typeof a2=='number'?a2:-Infinity;a3=typeof a3=='number'?a3:Infinity;return a1<a2?a2:a1>a3?a3:a1}
$.rand=function(a1,a2,a3){a1=typeof a1=='undefined'?0:a1;a2=typeof a2=='undefined'?1:a2;if(a3){for(var r=[],q=0;q<a3;q++)r[q]=Math.round(Math.random()*(a2-a1))+a1;return r}return Math.round(Math.random()*(a2-a1))+a1}
$.num.pi2=Math.PI/2; $.num.pi=Math.PI;

// String
$.str=function(a1){if(typeof a1=='undefined')return 'undefined';if(typeof a1=='string')return '"'+a1.replace(/\"/g,'\\"')+'"';if(typeof a1=='object'){var r=[];if(a1.constructor==Array){for(var x=0,X=a1.length;x<X;x++)r[r.length]=$.str(a1[x]);return '['+r.join(',')+']'}else if(a1.constructor==Object){for(var x in a1)r[r.length]=x+':'+$.str(a1[x]);return '{'+r.join(',')+'}'}}return a1.toString()}
$.camelCase=function(a1){return a1.replace($.mem.reg.camelCase,$.mem.func.toUpper)}
$.unCamelCase=function(a1){return a1.replace($.mem.reg.upperCase,$.mem.func.toLower)}
$.code=function(a1){for(var r='',t,x=0,X=a1.length;x<X;x++)r+=(t=a1.charCodeAt(x).toString(16)).length<2?'000'+t:t.length<3?'00'+t:t.length<4?'0'+t:t;return r}
$.uncode=function(a1){for(var r='',x=0,X=a1.length;x<X;x+=4)r+=unescape('%u'+a1.slice(x,x+4));return r}

// Array
$.arr=$.browser=='msie'?function(a1){for(var r=[],q=0,Q=a1.length;q<Q;q++)r[q]=a1[q];return r}:function(a1){return Array.prototype.slice.call(a1)}
$.arr.simple=function(a1){return a1.constructor==Array?a1:[a1]}
$.arr.move=function(a1,a2,a3){a2=a2<0?l+a2:a2;a3=a3<0?l+a3:a3;if(a2==a3)return a1;if(a2<a3)for(var t=a1[a2],x=a2;x<=a3;x++)a1[x]=a1[x+1];else for(var t=a1[a2],x=a2;x>=a3;x--)a1[x]=a1[x-1];a1[a3]=t;return a1}
$.filter=function(a1,a2){for(var a1=$.arr.simple(a1),a2=typeof a2=='function'?a2:~a2.indexOf('return')?Function(a2):Function("return "+a2),r=[],x=0,X=a1.length;x<X;x++)if(a2.call(a1[x],x,a1))r[r.length]=a1[x];return r}
$.merge=function(){for(var r=[],m=0,M=arguments.length;m<M;m++)r.push[arguments[m].constructor==Array?'apply':'call'](r,arguments[m]);return r}
$.sort=function(a1,a2,a3){return a2?$.sort.qc.call(a3?a1:a1.slice(0),0,a1.length,typeof a2=='function'?a2:Function(a2)):$.sort.qn.call(a3?a1:a1.slice(0),0,a1.length)}
  $.sort.qn=function(f,t){var p=f+Math.floor(Math.random()*(t-f)),c=this[p];this[p]=this[--t];this[t]=c;for(var s=this[t],o=f,i=f;i<t;i++)if(this[i]<s){c=this[o];this[o++]=this[i];this[i]=c}c=this[t];this[t]=this[o];this[o]=c;if(f<o)$.sort.qn.call(this,f,o);if(o<t)$.sort.qn.call(this,o+1,t+1);return this}
  $.sort.qc=function(f,t,x){var p=f+Math.floor(Math.random()*(t-f)),c=this[p];this[p]=this[--t];this[t]=c;for(var s=this[t],o=f,i=f;i<t;i++)if(x.call(this,this[i],s)){c=this[o];this[o++]=this[i];this[i]=c}c=this[t];this[t]=this[o];this[o]=c;if(f<o)$.sort.qc.call(this,f,o,x);if(o<t)$.sort.qc.call(this,o+1,t+1,x);return this}
$.choose=function(a1){for(var r=[],a=arguments,A=a1.length,y=1,Y=a.length;y<Y;y++){a[y]=a[y].toString();if(~a[y].indexOf(':')){var s=a[y].split(':'),x=+s[0]<0?A+(+s[0]):+s[0],X=+s[1]<0?A+(+s[1]):+s[1];if(x<=X)for(;x<=X;x++)r[r.length]=a1[x];else for(;x>=X;x--)r[r.length]=a1[x]}else if(a[y]=='even'||a[y]=='2n')for(var x=1;x<A;x+=2)r[r.length]=a1[x];else if(a[y]=='odd'||a[y]=='2n+1')for(var x=0;x<A;x+=2)r[r.length]=a1[x];else if(a[y]=='n')r.push.apply(r,a1);else if(~a[y].indexOf('n'))for(var s=a[y].split(/n\+?/),t=+s[0]<0?-s[0]:+s[0],x=+s[0]<0?(+s[0]-1+(+s[1]))%(+s[0]):t-s[0]-1+(+s[1]||0),X=+s[0]<0?+s[1]:A;x<X;x+=t)r[r.length]=a1[x];else r[r.length]=a1[a[y]]}return r}
$.unique=function(a1){yy:for(var r=[],X=0,y=0,Y=a1.length;y<Y;y++){for(var x=0;x<X;x++)if(a1[y]==r[x])continue yy;r[X++]=a1[y]}return r}
$.map=function(a1,a2,a3){for(var a1=a3?a1.slice(0):a1,a2=$.func(a2),f,e=0,E=a1.length;e<E;e++){f=a2.call(a1[e],e,a1);if(f===undefined){a1.splice(e--,1);E--}else a1[e]=f}return a1}
$.each=function(a1,a2,a3){for(var a1=a3?a1.slice(0):a1,a2=$.func(a2),e=0,E=a1.length;e<E;e++)a2.call(a1[e],e,a1);return a1}
$.contains=function(a1,a2){for(var q=0,Q=a1.length;q<Q;q++)if(a1[q]==a2)return true;return false}
$.index=function(a1,a2){for(var q=0,Q=a1.length;q<Q;q++)if(a1[q]==a2)return q;return -1}
$.and=function(a1){for(var y=0,Y=a1.length;y<Y;y++)if(!a1[y])return 0;return 1}
$.or=function(a1){for(var y=0,Y=a1.length;y<Y;y++)if(a1[y])return 1;return 0}

// Object
$.obj=function(a1,a2,a3){if(a1.constructor==Object)return a1;for(var r={},a1=a1.split(a2||','),a3=a3||':',l=a3.length,x=0,X=a1.length;x<X;x++){var s=a1[x].indexOf(a3);r[a1[x].slice(0,s)]=a1[x].slice(s+l)}return r}
$.obj.clone=function(a1){var r={};for(var x in a1)r[x]=a1[x].constructor==Object?$.obj.clone(a1[x]):a1[x];return r}
$.obj.extend=function(a1,a2){a2=a2||{};for(var x in a1)a2[x]=a1[x];return a2}

// RegExp
$.reg={
  phone:/^(\d{8,9}|\d{3}[\s\.-]\d{3}[\s\.-]\d{2,3})$/,
  email:/^[\w\.\-]+\@([\w\-]+\.)+[a-zA-z]{2,4}$/,
  postcode:/^\d{2}\-\d{3}$/,
  page:/^((https?|ftp)\:\/\/|www\.)([\w\-]+\.)+[a-zA-z]{2,4}$/,
  num:/^-?(\d+(\.\d+)?|\.\d+)$/
};

// Images
$.img=function(a1,a2,a3){for(var r=[],a1=$.arr.simple(a1),a2=$.func(a2),a3=$.func(a3),x=0,X=a1.length;x<X;x++){var i=new Image(),f=function(){document.body.appendChild(this).setAttribute('style','display:block;padding:0;border:0');this.width=this.offsetWidth;this.height=this.offsetHeight;this.removeAttribute('style');document.body.removeChild(this);arguments.callee.caller.f.apply(this,arguments)};i.src=a1[x]+'?'+new Date().getTime();i.onload=a2;i.onerror=a3;r[r.length]=i}return r}
$.img.anim=function(a1,a2){var a2=a2||{},f=a2.frames||1,s=(a2.start||0)+(!a2.src&&!a2.url?a2.reverse?-1:0:a2.reverse?0:1);a2.repeat=a2.repeat||f;for(var a1=$(a1),y=0,Y=a1.length;y<Y;y++)if(a2.src){a2.arg=[a1[y],a2.src.split('*')[0],a2.src.split('*').slice(1).join(''),s,f];$.interval(a2.reverse?function(t,a,b,s,f){t.src=a+(f-this.index%f+s)+b}:function(t,a,b,s,f){t.src=a+(this.index%f+s)+b},a2)}else if(a2.url){a2.arg=[a1[y],a2.url.split('*')[0],a2.url.split('*').slice(1).join(''),s,f];$.interval(a2.reverse?function(t,a,b,s,f){t.style.backgroundImage='url('+a+(f-this.index%f+s)+b+')'}:function(t,a,b,s,f){t.style.backgroundImage='url('+a+(this.index%f+s)+b+')'},a2)}else if(a2.positionX){a2.arg=[a1[y],a2.positionX,s,f];$.interval(a2.reverse?function(t,p,s,f){$.css.bg.x(t,-(f-this.index%f+s)*p+'px')}:function(t,p,s,f){$.css.bg.x(t,-(this.index%f+s)*p+'px')},a2)}else if(a2.positionY){a2.arg=[a1[y],a2.positionY,s,f];$.interval(a2.reverse?function(t,p,s,f){$.css.bg.y(t,-(f-this.index%f+s)*p+'px')}:function(t,p,s,f){$.css.bg.y(t,-(this.index%f+s)*p+'px')},a2)}}
$.img.empty='transparent url(data:images/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAABJJREFUeF4FwIEIAAAAAKD9qY8AAgABdDtSRwAAAABJRU5ErkJggg==) repeat';
$.img.bg='transparent url(data:images/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEUAAACnej3aAAAAAXRSTlMz/za5cAAAABJJREFUeF4FwIEIAAAAAKD9qY8AAgABdDtSRwAAAABJRU5ErkJggg==) repeat';

// Struct
$.struct=function(a1,a2,a3,a4){var r=Function("this.$PRIV=$.obj.clone(this.constructor.privatePrototype);"+$.struct.f1);r.f=$.func(a1||a4&&a4.f||0);r.toString=$.struct.string;r.prototype=a4?new a4:{};r.privatePrototype=a4?a4.privatePrototype:{};r.public=$.struct.public;r.private=$.struct.private;r.friend=$.struct.friend;r.prototype.constructor=r;if(a2)r.public(a2);if(a3)r.private(a3);return r}
$.struct.public=function(a1){for(var x in a1)this.prototype[x]=this.friend(a1[x]);return this}
$.struct.private=function(a1){for(var x in a1){this.privatePrototype[x]=this.friend(a1[x]);if(typeof this.prototype[x]=='undefined')this.prototype[x]=$.struct.privateValue}return this}
$.struct.friend=function(a1){if(typeof a1!='function')return a1;var r=Function($.struct.f2);r.f=a1;r.c=this;r.toString=function(){return this.f.toString()};return r}
$.struct.privateValue={toString:function(){return '[private value]'}}
$.struct.string=function(){return "[object Struct]"}
$.struct.f1="var $P={};for(var $X in this.$PRIV){$P[$X]=this[$X];this[$X]=this.$PRIV[$X]}var $R=arguments.callee.f.apply(this,arguments);for(var $X in $P){this.$PRIV[$X]=this[$X];this[$X]=$P[$X]}return $R";
$.struct.f2="if(this instanceof arguments.callee.c){"+$.struct.f1+"}else return arguments.callee.f.apply(this,arguments)";

// Drag & Drop
$.drag=function(a1,a2){$.drag.o=$.obj.clone($.drag.settings);for(var q in a2)$.drag.o[q]=a2[q];$.drag.move=$.drag.helper=a2.move?typeof a2.move=='string'?$(a2.move,a1)[0]:a2.move:a1;$.drag.limit={};$.drag.lii=0;$.drag.soq=new SoQ($.drag.move);$.drag.num=0;$.drag.sx=0;$.drag.sy=0;$.drag.dx=0;$.drag.dy=0;$.drag.rdx=0;$.drag.rdy=0;$.drag.x=0;$.drag.y=0;$.drag.position=$.css($.drag.move,'position');$.drag.t=$.drag.type[$.drag.o.type];$.drag.i();$.drag.grid=$.drag.o.grid?$.drag.o.grid.constructor==Array?$.drag.o.grid:[$.drag.o.grid,$.drag.o.grid]:[1,1];if($.drag.o.restrict){var L=$.drag.move,wr,ll=0,tt=0;if((wr=$.drag.o.restrict=='document')||$.drag.o.restrict=='window'){if(wr){$.drag.restrict=document.documentElement;var sx=0,sy=0,ix=$.innerX(),iy=$.innerY()}else{$.drag.restrict=window;var sx=$.scrollX(),sy=$.scrollY(),ix=$.windowX(),iy=$.windowY()}while(L=L.offsetParent){ll+=$.offsetLeft(L)+parseInt($.css(L,'border-left-width'));tt+=$.offsetTop(L)+parseInt($.css(L,'border-top-width'))}$.drag.li=$.drag.position=='relative'?[$.drag.old.left-$.drag.ll+sx-ll,ix-$.drag.ll+$.drag.old.left+sx-ll,$.drag.old.top-$.drag.tt+sy-tt,iy-$.drag.tt+$.drag.old.top+sy-tt]:[-$.drag.ll+$.drag.old.left+sx-ll,ix+sx-ll,-$.drag.tt+$.drag.old.top+sy-tt,iy+sy-tt]}else{$.drag.restrict=$($.drag.o.restrict,$.drag.move)[0];var ov=$.css($.drag.restrict,'overflow'),sw=ov=='auto'||ov=='scroll'?$.drag.restrict.scrollWidth:$.drag.restrict.clientWidth,sh=ov=='auto'||ov=='scroll'?$.drag.restrict.scrollHeight:$.drag.restrict.clientHeight,ip=0;while(L=L.offsetParent){if(L==$.drag.restrict){ip=1;break}ll+=$.offsetLeft(L)+parseInt($.css(L,'border-left-width'));tt+=$.offsetTop(L)+parseInt($.css(L,'border-top-width'))}if(!ip){$.drag.restrict.style.position='relative';return $.drag.apply(this,arguments)}$.drag.li=$.drag.position=='relative'?[$.drag.old.left-$.drag.ll-ll,sw-$.drag.ll+$.drag.old.left-ll,$.drag.old.top-$.drag.tt-tt,sh-$.drag.tt+$.drag.old.top-tt]:[-ll,sw-ll,-tt,sh-tt]}$.drag.old.scrollLeft=$.drag.restrict.scrollLeft;$.drag.old.scrollTop=$.drag.restrict.scrollTop;$.drag.limit.left=$.drag.dlimit[3];$.drag.limit.top=$.drag.dlimit[4];$.drag.limit.width=$.drag.dlimit[5];$.drag.limit.height=$.drag.dlimit[6]}else{$.drag.limit.left=$.drag.dlimit[0];$.drag.limit.top=$.drag.dlimit[1];$.drag.limit.width=$.drag.limit.height=$.drag.dlimit[2];$.drag.old.scrollLeft=0;$.drag.old.scrollTop=0}var h=$.drag.o.helper.toString().split(' ');if(h[0]=='clone'||h[0]=='background'||h[0]=='outline'){var nb=0;if(h[0]=='clone'){$.drag.helper=$.drag.helper.parentNode.appendChild($.drag.helper.cloneNode(1));if(typeof h[1]!='undefined')$.css.opacity($.drag.helper,h[1])}else{$.drag.helper=$.drag.helper.parentNode.appendChild(document.createElement('div'));if(h[0]=='outline'){var b=h.slice(1).join(' ')||'1px dashed #000',nb=parseInt(b);$.drag.helper.style.width=$.drag.ww+'px';$.drag.helper.style.height=$.drag.hh+'px';$.drag.helper.style.border=b}else{$.drag.helper.style.width=$.drag.ww+'px';$.drag.helper.style.height=$.drag.hh+'px';$.drag.helper.style.background=h.slice(1).join(' ')||$.img.bg}}with($.drag.helper.style){zIndex=100;position='absolute';margin=0;left=$.drag.ll-nb+'px';top=$.drag.tt-nb+'px'}}else if($.drag.o.helper){$.drag.helper=$.drag.helper.parentNode.appendChild($.drag.o.helper);with($.drag.helper.style){zIndex=100;position='absolute';margin=0;left=$.drag.ll+'px';top=$.drag.tt+'px'}}if($.drag.move!=$.drag.helper){$.drag.i();$.drag.lii=$.drag.li;$.drag.li=[0,sw-($.browser=='opera'?0:$.drag.ll-$.drag.old.left),0,sh-($.browser=='opera'?0:$.drag.tt-$.drag.old.top)];if($.drag.o.delay)$.drag.helper.style.display='none'}if($.drag.o.limit)for(var x in $.drag.o.limit)$.drag.limit[x]=$.drag.o.limit[x];new SoQ(document).on('mousedown',$.drag.f.down,'$.drag').on('mousemove',$.drag.f.move,'$.drag').on('mouseup',$.drag.f.up,'$.drag')}
$.drag.type={x:{left:"$.drag.dx+$.drag.old.left"},y:{top:"$.drag.dy+$.drag.old.top"},xy:{left:"$.drag.proportions&&Math.abs($.drag.dx)<=Math.abs($.drag.dy)?$.drag.old.left:$.drag.dx+$.drag.old.left",top:"$.drag.proportions&&Math.abs($.drag.dx)>=Math.abs($.drag.dy)?$.drag.old.top:$.drag.dy+$.drag.old.top"},e:{width:"$.drag.symmetry?$.drag.dx*2+$.drag.old.width:$.drag.dx+$.drag.old.width",left:"$.drag.symmetry?-$.drag.dx+$.drag.old.left:$.drag.old.left"},s:{height:"$.drag.symmetry?$.drag.dy*2+$.drag.old.height:$.drag.dy+$.drag.old.height",top:"$.drag.symmetry?-$.drag.dy+$.drag.old.top:$.drag.old.top"},n:{top:"$.drag.dy+$.drag.old.top",height:"$.drag.symmetry?-$.drag.dy*2+$.drag.old.height:-$.drag.dy+$.drag.old.height"},w:{left:"$.drag.dx+$.drag.old.left",width:"$.drag.symmetry?-$.drag.dx*2+$.drag.old.width:-$.drag.dx+$.drag.old.width"},nw:{width:"$.drag.proportions?$.drag.old.width+$.drag.old.width*(-$.drag.dx/$.drag.old.width-$.drag.dy/$.drag.old.height)/($.drag.symmetry?1:2):-$.drag.dx*($.drag.symmetry?2:1)+$.drag.old.width",height:"$.drag.proportions?($.drag.hh/$.drag.ww)*$.drag.style.width:-$.drag.dy*($.drag.symmetry?2:1)+$.drag.old.height",left:"$.drag.proportions?$.drag.old.left+($.drag.old.width-$.drag.style.width)/($.drag.symmetry?2:1):$.drag.dx+$.drag.old.left",top:"$.drag.proportions?$.drag.old.top+($.drag.old.height-$.drag.style.height)/($.drag.symmetry?2:1):$.drag.dy+$.drag.old.top"},ne:{width:"$.drag.proportions?$.drag.old.width+$.drag.old.width*($.drag.dx/$.drag.old.width-$.drag.dy/$.drag.old.height)/($.drag.symmetry?1:2):$.drag.dx*($.drag.symmetry?2:1)+$.drag.old.width",height:"$.drag.proportions?($.drag.hh/$.drag.ww)*$.drag.style.width:-$.drag.dy*($.drag.symmetry?2:1)+$.drag.old.height",left:"$.drag.symmetry?$.drag.old.left+($.drag.old.width-$.drag.style.width)/2:$.drag.old.left",top:"$.drag.proportions?$.drag.old.top+($.drag.old.height-$.drag.style.height)/($.drag.symmetry?2:1):$.drag.dy+$.drag.old.top"},sw:{width:"$.drag.proportions?$.drag.old.width+$.drag.old.width*(-$.drag.dx/$.drag.old.width+$.drag.dy/$.drag.old.height)/($.drag.symmetry?1:2):-$.drag.dx*($.drag.symmetry?2:1)+$.drag.old.width",height:"$.drag.proportions?($.drag.hh/$.drag.ww)*$.drag.style.width:$.drag.dy*($.drag.symmetry?2:1)+$.drag.old.height",left:"$.drag.proportions?$.drag.old.left+($.drag.old.width-$.drag.style.width)/($.drag.symmetry?2:1):$.drag.dx+$.drag.old.left",top:"$.drag.symmetry?$.drag.old.top+($.drag.old.height-$.drag.style.height)/2:$.drag.old.top"},se:{width:"$.drag.proportions?$.drag.old.width+$.drag.old.width*($.drag.symmetry?2:1)*($.drag.dx/$.drag.old.width+$.drag.dy/$.drag.old.height)/2:$.drag.dx*($.drag.symmetry?2:1)+$.drag.old.width",height:"$.drag.proportions?($.drag.hh/$.drag.ww)*$.drag.style.width:$.drag.dy*($.drag.symmetry?2:1)+$.drag.old.height",left:"$.drag.symmetry?$.drag.old.left+($.drag.old.width-$.drag.style.width)/2:$.drag.old.left",top:"$.drag.symmetry?$.drag.old.top+($.drag.old.height-$.drag.style.height)/2:$.drag.old.top"}};
$.drag.dlimit=[["-Infinity","$.drag.symmetry?$.drag.ll+($.drag.ww-$.drag.old.minWidth)/2-($.drag.ww-$.drag.old.width)/2:$.drag.o.type=='w'||$.drag.o.type=='nw'||$.drag.o.type=='sw'?$.drag.ll+$.drag.ww-$.drag.old.minWidth-($.drag.ww-$.drag.old.width):Infinity"],["-Infinity","$.drag.symmetry?$.drag.tt+($.drag.hh-$.drag.old.minHeight)/2-($.drag.hh-$.drag.old.height)/2:$.drag.o.type=='n'||$.drag.o.type=='ne'||$.drag.o.type=='nw'?$.drag.tt+$.drag.hh-$.drag.old.minHeight-($.drag.hh-$.drag.old.height):Infinity"],["0","Infinity"],["$.drag.symmetry&&$.drag.o.type!='x'&&$.drag.o.type!='xy'?Math.max($.drag.li[0],-$.drag.li[1]+$.drag.ll*2+$.drag.ww):$.drag.li[0]","$.drag.symmetry&&$.drag.o.type!='x'&&$.drag.o.type!='xy'?$.drag.ll+($.drag.ww-$.drag.old.minWidth)/2-($.drag.ww-$.drag.old.width)/2:$.drag.o.type=='w'||$.drag.o.type=='nw'||$.drag.o.type=='sw'?$.drag.ll+$.drag.ww-$.drag.old.minWidth-($.drag.ww-$.drag.old.width):$.drag.li[1]-$.drag.ww"],["$.drag.symmetry&&$.drag.o.type!='y'&&$.drag.o.type!='xy'?Math.max($.drag.li[2],-$.drag.li[3]+$.drag.tt*2+$.drag.hh):$.drag.li[2]","$.drag.symmetry&&$.drag.o.type!='y'&&$.drag.o.type!='xy'?$.drag.tt+($.drag.hh-$.drag.old.minHeight)/2-($.drag.hh-$.drag.old.height)/2:$.drag.o.type=='n'||$.drag.o.type=='ne'||$.drag.o.type=='nw'?$.drag.tt+$.drag.hh-$.drag.old.minHeight-($.drag.hh-$.drag.old.height):$.drag.li[3]-$.drag.hh"],["0","$.drag.symmetry?$.drag.old.width+Math.min($.drag.ll-$.drag.li[0],$.drag.li[1]-$.drag.ll-$.drag.ww)*2:$.drag.proportions&&$.drag.o.type!='e'&&$.drag.o.type!='w'?Math.min(($.drag.o.type=='nw'||$.drag.o.type=='sw'?$.drag.ll+$.drag.ww-$.drag.li[0]:$.drag.li[1]-$.drag.ll)-$.drag.ww+$.drag.old.width,($.drag.o.type=='nw'||$.drag.o.type=='ne'?$.drag.old.top+$.drag.old.height-$.drag.li[2]:$.drag.li[3]-$.drag.tt-$.drag.ww+$.drag.old.width)*($.drag.ww/$.drag.hh)):$.drag.o.type=='w'||$.drag.o.type=='nw'||$.drag.o.type=='sw'?$.drag.old.left+$.drag.old.width-$.drag.li[0]:$.drag.li[1]-$.drag.old.left-$.drag.ww+$.drag.old.width"],["0","$.drag.symmetry?$.drag.old.height+Math.min($.drag.tt-$.drag.li[2],$.drag.li[3]-$.drag.tt-$.drag.hh)*2:$.drag.o.type=='n'||$.drag.o.type=='nw'||$.drag.o.type=='ne'?$.drag.old.top+$.drag.old.height-$.drag.li[2]:$.drag.li[3]-$.drag.old.top-$.drag.hh+$.drag.old.height"]];
$.drag.f={down:function(e){e=$.drag.event(e);$.drag.start=1;$.drag.sx=e.mouseX;$.drag.sy=e.mouseY;e.stop()},move:function(e){e=$.drag.event(e);if(!$.drag.o.delay||Math.abs(e.mouseX-$.drag.sx)>$.drag.o.delay||Math.abs(e.mouseY-$.drag.sy)>$.drag.o.delay){if($.drag.move!=$.drag.helper)$.drag.helper.style.display='';$(this).on('mousemove',$.drag.f.move2,'$.drag')}},move2:function(e){var e=$.drag.event(e),a;if(!$.drag.num++)$.drag.soq.firecall('dragstart',e);$.drag.x=e.mouseX;$.drag.y=e.mouseY;if($.drag.o.reverse=='x'||$.drag.o.reverse=='xy'){$.drag.dx=$.drag.sx-$.drag.x;$.drag.rdx=$.drag.x-$.drag.sx}else{$.drag.dx=$.drag.x-$.drag.sx;$.drag.rdx=$.drag.sx-$.drag.x}if($.drag.o.reverse=='y'||$.drag.o.reverse=='xy'){$.drag.dy=$.drag.sy-$.drag.y;$.drag.rdy=$.drag.y-$.drag.sy}else{$.drag.dy=$.drag.y-$.drag.sy;$.drag.rdy=$.drag.sy-$.drag.y}$.drag.dx*=$.drag.factor;$.drag.rdx*=$.drag.factor;$.drag.dy*=$.drag.factor;$.drag.rdy*=$.drag.factor;$.drag.refresh(e);e.stop()},up:function(e){e=$.drag.event(e);$(this).no(0,'$.drag');if($.drag.move!=$.drag.helper){$.drag.helper.parentNode.removeChild($.drag.helper);$.drag.helper=$.drag.move;$.drag.i();$.drag.li=$.drag.lii||$.drag.li;$.drag.refresh()}$.drag.soq.firecall('dragend',e);$.drag.start=0;e.stop()}};
$.drag.i=function(){for(var x in $.drag.t)$.drag.old[x]=parseInt($.css($.drag.helper,$.unCamelCase(x)));$.drag.old.left=$.drag.old.left||parseInt($.css($.drag.helper,'left'));$.drag.old.top=$.drag.old.top||parseInt($.css($.drag.helper,'top'));$.drag.old.width=$.drag.old.width||parseInt($.css($.drag.helper,'width'));$.drag.old.height=$.drag.old.height||parseInt($.css($.drag.helper,'height'));$.drag.old.minWidth=$.drag.old.minWidth||parseInt($.css($.drag.helper,'min-width'));$.drag.old.minHeight=$.drag.old.minHeight||parseInt($.css($.drag.helper,'min-height'));$.drag.ll=$.offsetLeft($.drag.helper);$.drag.tt=$.offsetTop($.drag.helper);$.drag.ww=$.drag.helper.offsetWidth;$.drag.hh=$.drag.helper.offsetHeight}
$.drag.refresh=function(e){if(!$.drag.start)return;for(var x in $.drag.t){var v=eval($.drag.t[x]);if($.drag.limit[x]){var m=eval($.drag.limit[x][0]),n=eval($.drag.limit[x][1]),a=$.drag.grid[~x.search(/top|bottom|height/)?1:0];$.drag.style[x]=v<m?m:v>n?n:v;if(v<$.ceil(m,a))$.drag.style[x]=Math.round($.ceil($.drag.style[x],a));else if(v>$.floor(n,a))$.drag.style[x]=Math.round($.floor($.drag.style[x],a));else $.drag.style[x]=Math.round($.round($.drag.style[x],a))}else $.drag.style[x]=Math.round($.round(v,$.drag.grid[~x.search(/top|bottom|height/)?1:0]))}if(e)$.drag.soq.firecall('dragmove',e);for(var x in $.drag.t)$.drag.helper.style[x]=$.drag.style[x]+'px'}
$.drag.event=function(e){e.element=$.drag.move;e.related=$.drag.helper;return e};$.drag.limit={};$.drag.style={};$.drag.old={};$.drag.o={};$.drag.start=0;

// SoQ
$.template=function(){if(this.constructor==$.template)return this;for(var x in $.e)if(!$.template.prototype[x]&&x!='toString'&&x!='constructor')$.template.prototype[x]=Function("this[this.length++]="+(typeof $.e[x]=='function'?"['"+x+"',arguments]":"'"+x+"'")+";return this");return new $.template}
$.template.prototype={length:0,constructor:$.template};
$.on=function(a1,a2){var n='$copy.'+(a2||a1);if($.e[n])return $.e[n];$.e[n]=$.e[a1];return $.e[a1]=Function("var r=$.e['"+n+"'].apply(this,arguments);this.firecall('"+(a2?a2:"."+a1)+"',$.arr(arguments));return r")}
$.load=function(a1){return $.mem.obj[a1||0]}

// Other
$.zIndex=function(a1,a2,a3){for(var a1=$(a1),n=typeof a2=='number'?a2:a3||1,e=typeof a2=='object'?a2:a3||0,y=0,Y=a1.length;y<Y;y++)if(!e||a1[y].style.zIndex<n)a1[y].style.zIndex=y+n;if(e){for(var i=e.style.zIndex,y=0;y<Y;y++)if(a1[y].style.zIndex>i)a1[y].style.zIndex--;e.style.zIndex=Y+n}}
$.att=function(a1,a2,a3){if(typeof a3=='undefined'){var a2=a2.split('.'),x=0;do a1=a1[a2[x]];while(a1&&a2[++x]);return a1}var n=a2.charAt(0)=='!',w=0;if(n)a2=a2.slice(1);switch(a2){case '*=':w=a1.indexOf(a3)!=-1;break;case '~=':w=(' '+a1+' ').indexOf(' '+a3+' ')!=-1;break;case '|=':w=(','+a1+',').indexOf(','+a3+',')!=-1;break;case '^=':w=a1.slice(0,a3.length)==a3;break;case '$=':w=a1.slice(a1.length-a3.length)==a3;break;case '==':w=~a1.search(new RegExp(a3));break;case '<':w=(~a1.search($.mem.reg.numUnit)?parseFloat(a1):a1)<(~a3.search($.mem.reg.numUnit)?parseFloat(a3):a3);break;case '<=':w=(~a1.search($.mem.reg.numUnit)?parseFloat(a1):a1)<=(~a3.search($.mem.reg.numUnit)?parseFloat(a3):a3);break;case '>':w=(~a1.search($.mem.reg.numUnit)?parseFloat(a1):a1)>(~a3.search($.mem.reg.numUnit)?parseFloat(a3):a3);break;case '>=':w=(~a1.search($.mem.reg.numUnit)?parseFloat(a1):a1)>=(~a3.search($.mem.reg.numUnit)?parseFloat(a3):a3);break;default:w=a1==a3}return n?!w:w}
$.avg=function(a1,a2,a3){var a3=typeof a3=='undefined'?.5:a3;if(a1.constructor==Array){var r1=Math.round(a1[0]-(a1[0]-a2[0])*a3).toString(16),r2=Math.round(a1[1]-(a1[1]-a2[1])*a3).toString(16),r3=Math.round(a1[2]-(a1[2]-a2[2])*a3).toString(16);return '#'+(r1.length==1?'0'+r1:r1)+(r2.length==1?'0'+r2:r2)+(r3.length==1?'0'+r3:r3)}if(a1.search($.mem.reg.digit)>-1){var m=a1.match($.mem.reg.unit),u=parseFloat(a1),o=parseFloat(a2),w=u-((u-o)*a3);return m?w+m:w}return a2}
$.script=function(a1,a2){var s=document.createElement('script');s.type='text/javascript';s.src=a1;if(a2){a2=$.func(a2);s.onload=a2;var f=function(){var a=arguments.callee;if(a.s.readyState=='loaded'||a.s.readyState=='complete')a.f.apply(this,arguments)};f.s=s;f.f=a2;s.onreadystatechange=f}return document.body.appendChild(s)}
$.brackets=function(a1){return a1.slice(a1.indexOf('(')+1,a1.lastIndexOf(')')).split($.mem.reg.comma1)}
$.push=function(a1){return "$.mem.arr["+($.mem.arr.push(a1)-1)+"]"}

// ------------------------------------------------------------------------------ SoQ prototype
SoQ.prototype=$.e={

//Events
on:function(a1,a2,a3){if(!a1)return this;if(a1.constructor==Object){for(var x in a1)this.on(x,a1[x],a3);return this}if(a1.constructor==Array){for(var x=0,X=a1.length;x<X;x++)this.on(a1[x],a2,a3);return this}if(a2.constructor==Object){for(var x in a2)this.on(a1,a2[x],x);return this}if(a2.constructor==Array){for(var y=0,Y=this.length;y<Y;y++)if(a2[y])new SoQ(this[y]).on(a1,a2[y],a3);return this}var p=a1.split(':').slice(1).join(':')||'',a1=a1.split(':')[0],a2=$.func(a2),a3=a3||0,d=$.event.type[a1]||{};if(d.init)for(var y=0,Y=this.length;y<Y;y++)d.init.call(this[y],this,y,p);for(var y=0,Y=this.length;y<Y;y++){var s={event:a1,func:a2,id:a3,attach:d.event||a1,parms:p,that:this[y],num:y,call:Function('e','var s=arguments.callee.s,e=$.event.init(e);'+(d.test?'if($.event.type[s.event].test.call(s.that,e,s.num,s.parms))':'')+'s.func.call(s.that,e,s.event,s.parms)')};s.call.s=s;var e=this[y].ev=this[y].ev||[];if(a3)for(var x=0,X=e.length;x<X;x++)if(e[x].event==a1&&e[x].id==a3){window.removeEventListener?this[y].removeEventListener(s.attach,e[x].call,0):this[y].detachEvent('on'+s.attach,e[x].call);this[y].ev.splice(x--,1);X--}if(s.attach.slice(0,4)!='drag')window.addEventListener?this[y].addEventListener(s.attach,s.call,0):this[y].attachEvent('on'+s.attach,s.call);this[y].ev[e.length]=s}return this},
no:function(a1,a2){for(var p=typeof a1=='string'?a1.split(':').slice(1).join(':')||'':'',a2=a2||0,y=0,Y=this.length;y<Y;y++)if(this[y].ev)for(var e=this[y].ev,x=0,X=e.length;x<X;x++)if((!a1||a1=='all'||a1==e[x].event)&&(!a2||a2==e[x].id)&&(!p||!e[x].parms||p==e[x].parms)){window.removeEventListener?this[y].removeEventListener(e[x].attach,e[x].call,0):this[y].detachEvent('on'+e[x].attach,e[x].call);this[y].ev.splice(x--,1);X--}return this},
toggleOn:function(a1){return this.on(a1,$.func.toggle.apply(0,$.arr(arguments).slice(1)))},
events:function(a1,a2){var r=[],o;if(!a1&&!a2){for(var y=0,Y=this.length;o={},y<Y;y++)if(this[y].ev)for(var e=this[y].ev,x=0,X=e.length;x<X;r[y]=o,x++){var d=e[x].event;o[d]=o[d]||{};if(!o[e[x].event][e[x].id])o[d][e[x].id]=[];o[d][e[x].id][o[d][e[x].id].length]=e[x].func}return r}var a1=a1||'all',p=a1.split(':').slice(1).join(':')||'';for(var y=0,Y=this.length;o={},y<Y;r[y]=o,y++)if(this[y].ev)for(var e=this[y].ev,x=0,X=e.length;x<X;x++)if((a1=='all'||a1==e[x].event)&&(!a2||a2==e[x].id)&&(!p||!e[x].parms||p==e[x].parms)){var d=e[x].event;o[d]=o[d]||{};if(!o[e[x].event][e[x].id])o[d][e[x].id]=[];o[d][e[x].id][o[d][e[x].id].length]=e[x].func}return r},
hover:function(a1,a2,a3){return this.on('mouseenter',a1,a3).on('mouseleave',a2,a3)},
active:function(a1,a2,a3){return this.on('mousedown',a1,a3).on('mouseup',a2,a3)},

// Animations
anim:function(a1,a2){if($.anim.off||(a2&&(a2.time===0||a2.time===false))){this.css(a1);if(a2&&a2.callback)$.func(a2.callback).apply(a2.that||this,a2.arg||[]);return this}var a2=a2||{},css=$.css.sepObj(a1),ti=a2.time||$.anim.time,fr=ti/(1000/(a2.fps||$.anim.fps)),re=a2.repeat||$.anim.repeat,na=a2.name,fu=(a2.bounce=a2.elastic?a2.elastic:a2.bounce)?"k="+(1/fr)+"*this.index>1,l=(k?"+(1-(a2.bounce=a2.bounce/100))+":0)+(k?"+a2.bounce+":1)*"+(a2.elastic?"Math.sin($.num.pi2*":"(")+"(l-(l-1)*(this.index/"+(fr*(re=re*2+1))+"))),":"",T='',N=0;for(var y=0,Y=this.length;y<Y;y++){this[y].anim=this[y].anim||{length:0};for(var x in css)if(x=='opacity'||$.camelCase(x)=='backgroundPositionX'||$.camelCase(x)=='backgroundPositionY'||this[y].style[x]!=undefined){var c=(typeof css[x]=='function'?css[x].call(this[y],y,this):css[x].constructor==Array?css[x][y]||'':css[x]).toString(),x=x=x=='background'?'background-color':$.unCamelCase(x),u=c.match($.mem.reg.unit),cu=$.css(this[y],x,u?u[0]:''),co=$.css.ex(this,y,x,c);if(cu.charAt(0)=='#'){cu='['+$.brackets($.color.rgb(cu))+']';co='['+$.brackets($.color.rgb(co))+']'}else{cu="'"+cu+"'";co="'"+co+"'"}if(this[y].anim[x])if(typeof a2.stop=='undefined'?$.anim.stop:a2.stop){this[y].anim[x].stop();this[y].anim.length--}else{continue}if(na)T+=x=='opacity'&&!$.css.Opacity?"$.css.opacity(t["+y+"],$.avg("+cu+","+co+",l));":x=='background-position-x'?"$.css.bg.x(t["+y+"],$.avg("+cu+","+co+",l));":x=='background-position-y'?"$.css.bg.y(t["+y+"],$.avg("+cu+","+co+",l));":"t["+y+"].style."+$.camelCase(x)+"=$.avg("+cu+","+co+",l);";else{this[y].anim.length++;this[y].anim[x]=$.interval(Function("t","var l=$.anim.types['"+(a2.type?a2.type:a2.bounce?'faster':$.anim.type)+"'](this.index,"+fr+"),"+fu+"a=$.avg("+cu+","+co+",l);"+(x=='opacity'&&!$.css.Opacity?";$.css.opacity(t,a)":x=='background-position-x'?";$.css.bg.x(t,a)":x=='background-position-y'?";$.css.bg.y(t,a)":";t.style."+$.camelCase(x)+"=a")+(a2.step&&y==Y-1?";"+$.push($.func(a2.step))+".apply("+$.push(a2.that||this)+","+$.push(a2.arg||[])+")":"")),{time:ti/fr,repeat:Math.round(fr*re),delay:a2.delay,arg:[this[y]],carg:a2.arg||[],cthat:[this,a2.that],callback:["arguments.callee.caller.that=this[1]||this[0];delete this[0]["+y+"].anim['"+x+"'];this[0]["+y+"].anim.length--"]});}N++}}if(na){var it=$.interval(Function("t","var l=$.anim.types['"+(a2.type?a2.type:a2.bounce?'faster':$.anim.type)+"'](this.index,"+fr+");"+fu+T+(a2.step?";"+$.push($.func(a2.step))+".apply("+$.push(a2.that||this)+","+$.push(a2.arg||[])+")":"")),{time:ti/fr,repeat:Math.round(fr*re),delay:a2.delay,callback:a2.callback,arg:[this],carg:a2.arg||[],cthat:a2.that||this});if(na!==1&&na!==true){if($.intervals[na])$.intervals[na].stop();$.intervals[na]=it}}else if(N&&a2.callback)Array.prototype.push.apply(this[Y-1].anim[x].callback.array,$.arr.simple(a2.callback));return this},
delay:function(a1,a2,a3){var a3=typeof a3=='number'?{time:a3}:a3||{},na=a3.name,it=a3.queue?$.interval("var a=arguments,s=new SoQ(a[0][this.index-1]);s[a[1]].apply(s,a[2])",{time:a3.time||$.anim.time,repeat:this.length,arg:[this,a1,$.arr.simple(a2)],delay:a3.delay||0}):$.interval("this[arguments[0]].apply(this,arguments[1])",{time:a3.time||$.anim.time,that:this,arg:[a1,$.arr.simple(a2)]});if(na&&na!==1&&na!==true){if($.intervals[na])$.intervals[na].stop();$.intervals[na]=it}return this},
queue:function(a1){for(var X=arguments.length,a,b,y=0,Y=this.length;b=[],y<Y;y++){this[y].qu=this[y].qu||[];for(var x=0;x<X;x+=2){a=$.obj.clone(arguments[x+1]||{});a.callback=$.arr.simple(a.callback||[]);a.callback[a.callback.length]="new SoQ(arguments[0]).queueStart()";a.arg=[this[y],y];a.that=this;b[b.length]=[arguments[x],a]}this[y].qu[this[y].qu.length]=b}return this},
queueStart:function(){for(var y=0,Y=this.length;y<Y;y++){this[y].qu=this[y].qu||[];if(this[y].qu[0]){for(var x=0,X=this[y].qu[0].length;x<X;x++)new SoQ(this[y]).anim(this[y].qu[0][x][0],this[y].qu[0][x][1]);this[y].qu.splice(0,1)}}return this},
animText:function(a1){if($.anim.off){if(a1.text)this.html(a1.text);if(a1&&a1.callback)$.func(a1.callback).apply(a2.that||this,a1.arg||[]);return this}a1=a1||{};a1.time=a1.time||$.anim.time;a1.fps=a1.fps||$.anim.fps;for(var y=0,Y=this.length;y<Y;y++){if(a1.text)this[y].innerHTML=a1.text;for(var c=$.dom.desc(this[y]),r=[],z=0,w={},l=[],k=0,x=0,X=c.length;x<X;x++)if(c[x].nodeType==3&&c[x].parentNode.tagName!='SCRIPT')k+=c[x].nodeValue.length;k=(k/a1.fps/a1.time)*1000;for(var x=0;x<X;x++)if(c[x].nodeType==3&&c[x].parentNode.tagName!='SCRIPT'){var p=Math.ceil(z/k)||1,v=c[x];w[p]=w[p]||[];V:while((v=v.parentNode)!=this[y]){if(l.lengt)for(var q=0,Q=l.length;q<Q;q++)if(l[q]==v)break V;l[l.length]=v;w[p][w[p].length]=[v,v.style.display]}if(!w[p].length)delete w[p];r[r.length]=[c[x],c[x].nodeValue,-z+(z+=c[x].nodeValue.length)]}if(a1.hide)if(a1.delay)$.interval($.mem.func.atext,{time:a1.delay,arg:[w]});else for(var x in w)if(w[x])for(var q=0,Q=w[x].length;q<Q;q++)w[x][q][0].style.display='none';p=Math.ceil(z/k);this[y].anim=this[y].anim||{length:0};this[y].anim.length++;if(this[y].anim.text){if(typeof a1.stop=='undefined'?$.anim.stop:a1.stop){this[y].anim.text.stop();this[y].anim.length--}else continue}this[y].anim.text=$.interval("var z=0,o=arguments[0],t=this.index*"+k+";for(var q=0;q<"+r.length+";q++){o[q][0].nodeValue=t-z<0?'':o[q][1].slice(0,t-z);z+=o[q][2]}if(arguments[1][this.index])for(var x=0,X=arguments[1][this.index].length;x<X;x++)arguments[1][this.index][x][0].style.display=arguments[1][this.index][x][1];"+(a1.infinity?"if(this.index=="+p+"){this.index=0"+(a1.pause?";this.stop("+a1.pause+")}":"}"):"")+(a1.step&&y==Y-1?$.push($.func(a1.step))+".apply("+$.push(a1.that||this)+","+$.push(a1.arg||[])+")":""),{time:a1.time/(z/k),cthat:[this,a1.that],callback:["arguments.callee.caller.that=this[1]||this[0];delete this[0]["+y+"].anim.text;this[0]["+y+"].anim.length--"],carg:a1.arg||[],repeat:p,delay:a1.delay,arg:[r,w,this[y]]})}Array.prototype.push.apply(this[Y-1].anim.text.callback.array,$.arr.simple(a1.callback||[]));return this},

// Document Object Model
clone:window.attachEvent?
  function(a1,a2){var r=[];if(a2){for(var x=0,Y=this.length,c;x<a2;x++)for(var c=this.clone(a1),y=0;y<Y;y++)r[r.length]=c[y];return new SoQ(r)}if(a1){var e=this.events();for(var y=0,Y=this.length;y<Y;y++){var c=this[y].cloneNode(1);c.ev=$.obj.clone(this[y].ev);var cc=new SoQ(c).no();if(this[y].tagName){cc.on(e[y]);if(this[y].ec)c.ec=$.obj.clone(this[y].ec);var u=this[y].getElementsByTagName('*'),d=c.getElementsByTagName('*');for(var z=0,Z=d.length;z<Z;z++)if(u[z].ev){new SoQ(d[z]).on(new SoQ(u[z]).events()[0]);if(u[z].ec)d[z].ec=$.obj.clone(u[z].ec)}}r[r.length]=c}}else for(var y=0,Y=this.length;y<Y;y++){var c=this[y].cloneNode(1);c.ev=$.obj.clone(this[y].ev);new SoQ(c).no();r[r.length]=c}return new SoQ(r).L(this).S(this.selector)}:
  function(a1,a2){var r=[];if(a2){for(var x=0,Y=this.length,c;x<a2;x++)for(var c=this.clone(a1),y=0;y<Y;y++)r[r.length]=c[y];return new SoQ(r)}if(a1){var e=this.events();for(var y=0,Y=this.length;y<Y;y++){var c=this[y].cloneNode(1);if(this[y].tagName){new SoQ(c).on(e[y]);if(this[y].ec)c.ec=$.obj.clone(this[y].ec);var u=this[y].getElementsByTagName('*'),d=c.getElementsByTagName('*');for(var z=0,Z=d.length;z<Z;z++)if(u[z].ev){new SoQ(d[z]).on(new SoQ(u[z]).events()[0]);if(u[z].ec)d[z].ec=$.obj.clone(u[z].ec)}}r[r.length]=c}}else for(var y=0,Y=this.length;y<Y;y++)r[r.length]=this[y].cloneNode(1);return new SoQ(r).L(this).S(this.selector)},
remove:function(){for(var y=0,Y=this.length,p;y<Y;y++)if(p=this[y].parentNode)p.removeChild(this[y]);return this},
create:function(a1,a2,a3){return this.appendAll($.create(a1,a2,a3))},
wrap:function(a1){for(var r=[],y=0,Y=this.length;y<Y;y++){var n=document.createElement(a1);this[y].parentNode.insertBefore(n,this[y]);n.appendChild(this[y]);r[r.length]=n}return new SoQ(r).L(this).S(this.selector+' < *')},
wrapAll:function(a1){var r=document.createElement(a1);this[0].parentNode.insertBefore(r,this[0]);for(var y=0,Y=this.length;y<Y;y++)r.appendChild(this[y]);return new SoQ(r).L(this).S(this.selector+' < *')},
unwrap:function(){yy:for(var a=[],y=0,Y=this.length;y<Y;y++){for(var p=this[y].parentNode,x=0,X=a.length;x<X;x++)if(a[x]==p)continue yy;a[x]=p}for(var y=0,Y=a.length;y<Y;y++){var p=a[y].parentNode,c;while(c=a[y].firstChild)p.insertBefore(c,a[y]);p.removeChild(a[y])}return this},
empty:function(){for(var y=0,Y=this.length;y<Y;y++)this[y].innerHTML='';return this},
outer:function(){for(var r=[],n,y=0,Y=this.length;y<Y;y++){n=document.createElement('div');n.appendChild(this[y].cloneNode(1));r[r.length]=n.innerHTML}r.last=this;return r},

// Array
q:function(){for(var a=[this],x=0,X=arguments.length;x<X;x++)a[x+1]=arguments[x];return new SoQ($.choose.apply(0,a)).L(this).S(this.selector+'{'+$.arr(arguments).join(',')+'}')},
each:function(a1,a2){$.each(this,a1);return this},
map:function(a1){return new SoQ($.map($.arr(this),a1)).L(this)},
sort:function(a1){return new SoQ($.sort($.arr(this),a1)).L(this)},
array:function(){var r=$.arr(this);r.last=this;return r},
reverse:function(){for(var r=[],y=0,Y=this.length;y<Y;y++)r[Y-1-y]=this[y];return new SoQ(r).L(this)},

// Move
move:function(a1){for(var n,X=a1<0?-a1:a1,y=0,Y=this.length;y<Y;y++){n=this[y];nn:while(n=a1<0?n.previousSibling:n.nextSibling){for(var x=0;x<Y;x++)if(n==this[x])continue nn;if(n.nodeType==1)break}for(var x=0;x<X;x++)this[y].parentNode.insertBefore(this[y],a1<0?n||this[y]:n&&n.nextSibling)}return this},
moveStart:function(){for(var n,y=0,Y=this.length;y<Y;y++){xx:for(var p=this[y].parentNode,c=p.childNodes,x=0,X=c.length;x<X;x++){for(var z=0;z<Y;z++)if(c[x]==this[z])continue xx;break}p.insertBefore(this[y],c[x])}return this},
moveEnd:function(){for(var n,y=0,Y=this.length;y<Y;y++){xx:for(var p=this[y].parentNode,c=p.childNodes,x=c.length-1;x>=0;x--){for(var z=0;z<Y;z++)if(c[x]==this[z])continue xx;break}p.insertBefore(this[y],c[x])}return this},

// Slide   
slide:function(a1,a2,a3){a1=$.css.sepObj(a1);for(var x in a1)if(typeof a1[x]=='string'||typeof a1[x]=='number'){a1[x]=a1[x].toString().split($.mem.reg.comma);a1[x][1]=a1[x][1]||'$'}else if(typeof a1[x]=='function')a1[x]=[a1[x],a1[x]];a2=typeof a2=='number'?{time:a2}:a2?a2:{};a2.that=a2.that||this;a3=typeof a3=='number'?{time:a3}:a3?a3:{};for(var x in a2)if(typeof a3[x]=='undefined')a3[x]=a2[x];for(var c,d,t,b=a2.callback,h=a2.hide||$.slide.hide,y=0,Y=this.length;c={},y<Y;y++){if(!this[y].slide||typeof this[y].slide.toggle=='undefined'){this[y].slide=this[y].slide||{};this[y].slide.toggle=1}for(var x in a1)this[y].slide[x]=this[y].slide[x]||$.css.i(this[y],$.unCamelCase(x));this[y].slide.hide=h;d=$.css(this[y],'display')=='none'||$.css(this[y],'visibility')=='hidden';t=this[y].slide.toggle=!~this[y].slide.toggle?0:d?1:!this[y].slide.toggle;if(t&&a3.save||!d&&a2.save)for(var x in a1)this[y].slide[x]=$.css.i(this[y],$.unCamelCase(x));if(t){this[y].style.display=$.css.displayed(this[y]);this[y].style.visibility='visible';if(d)$.mem.func.restore(this,y,a1,0);for(var x in a1)c[x]=a1[x][1]=='$'?this[y].slide[x]:typeof a1[x][1]=='function'?a1[x][1].call(this[y],y,this):a1[x][1];a3.callback=b&&y==Y-1?b:0;new SoQ(this[y]).anim(c,a3)}else if(!d){if(a2.set)for(var x in a1)this[y].slide[x]=$.css.i(this[y],$.unCamelCase(x));for(var x in a1)c[x]=a1[x][0]=='$'?this[y].slide[x]:typeof a1[x][0]=='function'?a1[x][0].call(this[y],y,this):a1[x][0];a2.callback=b&&y==Y-1?$.func([$.func.arg($.mem.func.hide,[this,y,a1]),b]):$.func.arg($.mem.func.hide,[this,y,a1]);new SoQ(this[y]).anim(c,a2)}}return this},
slideSet:function(a1){a1=$.css.sepObj(a1);for(var y=0,Y=this.length;y<Y;y++){this[y].slide=this[y].slide||{};for(var x in a1)this[y].slide[x]=a1[x]}return this},
slideUp:function(a1,a2){for(var y=0,Y=this.length;y<Y;y++){this[y].slide=this[y].slide||{};this[y].slide.toggle=0}return this.slide(a1,a2)},
slideDown:function(a1,a2){for(var y=0,Y=this.length;y<Y;y++){this[y].slide=this[y].slide||{};this[y].slide.toggle=-1}return this.slide(a1,a2)},

// Selector
$:function(a1){return $(a1,this).L(this)},
desc:function(a1){if(a1&&a1!='*')return $(a1,this,' ').L(this).S(this.selector+' '+a1);for(var r=[],y=0,Y=this.length;y<Y;y++)if(this[y].nodeType==1||this[y].nodeType==9)r.push.apply(r,$.arr(this[y].getElementsByTagName('*')));return new SoQ($.unique(r)).L(this).S(this.selector+' *')},
child:function(a1){if(a1&&a1!='*')return $(a1,this,'>').L(this).S(this.selector+' > '+a1);for(var r=[],y=0,Y=this.length;y<Y;y++)if(this[y].nodeType==1||this[y].nodeType==9)for(var c=this[y].childNodes,x=0,X=c.length;x<X;x++)if(c[x].nodeType==1)r[r.length]=c[x];return new SoQ(r).L(this).S(this.selector+' > *')},
parent:function(a1){if(a1&&a1!='*')return $(a1,this,'<').L(this).S(this.selector+' < '+a1);for(var r=[],y=0,Y=this.length;y<Y;y++)r[y]=this[y].parentNode;return new SoQ($.unique(r)).L(this).S(this.selector+' < *')},
ancestor:function(a1){if(a1&&a1!='*')return $(a1,this,'^').L(this).S(this.selector+' ^ '+a1);for(var r=[],y=0,Y=this.length;y<Y;y++)r.push.apply(r,$.dom.ancestors(this[y]));return new SoQ($.unique(r)).L(this).S(this.selector+' ^ *')},
next:function(a1){if(a1&&a1!='*')return $(a1,this,'+').L(this).S(this.selector+' + '+a1);for(var r=[],y=0,Y=this.length;y<Y;y++){l=this[y];while(l=l.nextSibling)if(l.nodeType==1){r[r.length]=l;break}}return new SoQ($.unique(r)).L(this).S(this.selector+' + *')},
prev:function(a1){if(a1&&a1!='*')return $(a1,this,'/').L(this).S(this.selector+' / '+a1);for(var r=[],y=0,Y=this.length;y<Y;y++){l=this[y];while(l=l.previousSibling)if(l.nodeType==1){r[r.length]=l;break}}return new SoQ($.unique(r)).L(this).S(this.selector+' / *')},
younger:function(a1){if(a1&&a1!='*')return $(a1,this,'~').L(this).S(this.selector+' ~ '+a1);for(var r=[],y=0,Y=this.length;y<Y;y++){l=this[y];while(l=l.nextSibling)if(l.nodeType==1)r[r.length]=l}return new SoQ($.unique(r)).L(this).S(this.selector+' ~ *')},
older:function(a1){if(a1&&a1!='*')return $(a1,this,'~~').L(this).S(this.selector+' ~~ '+a1);for(var r=[],y=0,Y=this.length;y<Y;y++){l=this[y];while(l=l.previousSibling)if(l.nodeType==1)r[r.length]=l}return new SoQ($.unique(r)).L(this).S(this.selector+' ~~ *')},
sibl:function(a1){if(a1&&a1!='*')return $(a1,this,'=').L(this).S(this.selector+' = '+a1);for(var r=[],y=0,Y=this.length;y<Y;y++)for(var c=this[y].parentNode.childNodes,x=0,X=c.length;x<X;x++)if(c[x].nodeType==1)r[r.length]=c[x];return new SoQ($.unique(r)).L(this).S(this.selector+' = *')},

// Attributes
css:function(a1,a2){var Y=this.length;if(arguments.length>1){for(var x=0,X=arguments.length;x<X;x+=2){var a=arguments[x],a=a=='float'?$.css.Float:a,w=arguments[x+1],wl=w.length,c=arguments[x+2]===1||arguments[x+2]===true;if(!$.css.Opacity&&a=='opacity')for(var y=0;y<Y;y++)$.css.opacity(this[y],$.css.ex(this,y,a,typeof w=='function'?w.call(this[y],y,this):w.constructor==Array?w[c?y%wl:y]||'':w));else if(a=='background-position-x')for(var y=0;y<Y;y++)$.css.bg.x(this[y],$.css.ex(this,y,a,typeof w=='function'?w.call(this[y],y,this):w.constructor==Array?w[c?y%wl:y]||'':w));else if(a=='background-position-y')for(var y=0;y<Y;y++)$.css.bg.y(this[y],$.css.ex(this,y,a,typeof w=='function'?w.call(this[y],y,this):w.constructor==Array?w[c?y%wl:y]||'':w));else for(var y=0;y<Y;y++)this[y].style[$.camelCase(a)]=$.css.ex(this,y,a,$.css.ex(this,y,a,typeof w=='function'?w.call(this[y],y,this):w.constructor==Array?w[c?y%wl:y]||'':w));if(c)x++}return this}else if(typeof a1=='string'&&!~a1.indexOf(':')){for(var r=[],s=a1.split(' '),y=0;y<Y;y++)r[r.length]=$.css(this[y],s[0],s[1]);r.last=this;return r}a1=$.css.object(a1);for(var x in a1){var a=x=='float'?$.css.Float:$.unCamelCase(x);if(a=='opacity'&&!$.css.Opacity)for(var y=0;y<Y;y++)$.css.opacity(this[y],$.css.ex(this,y,a,$.css.ex(this,y,a,typeof a1[x]=='function'?a1[x].call(this[y],y,this):a1[x].constructor==Array?a1[x][y]||'':a1[x])));else if(a=='background-position-x')for(var y=0;y<Y;y++)$.css.bg.x(this[y],$.css.ex(this,y,a,$.css.ex(this,y,a,typeof a1[x]=='function'?a1[x].call(this[y],y,this):a1[x].constructor==Array?a1[x][y]||'':a1[x])));else if(a=='background-position-y')for(var y=0;y<Y;y++)$.css.bg.y(this[y],$.css.ex(this,y,a,$.css.ex(this,y,a,typeof a1[x]=='function'?a1[x].call(this[y],y,this):a1[x].constructor==Array?a1[x][y]||'':a1[x])));else for(var y=0;y<Y;y++)this[y].style[$.camelCase(a)]=$.css.ex(this,y,a,typeof a1[x]=='function'?a1[x].call(this[y],y,this):a1[x].constructor==Array?a1[x][y]||'':a1[x])}return this},
prop:function(a1,a2){var Y=this.length;if(arguments.length>1){for(var x=0,X=arguments.length;x<X;x+=2){var a=arguments[x],w=arguments[x+1],wl=w.length,c=arguments[x+2],c=c===1||c===true;if(w.constructor==Array)for(var y=0;y<Y;y++){var r=w[c?y%wl:y]||'';eval("this[y]."+a+"=typeof r=='function'?r.call(this[y],y,this):r")}else for(var y=0;y<Y;y++)eval("this[y]."+a+"=typeof w=='function'?w.call(this[y],y,this):w");if(c)x++}return this}else if(a1){if(a1.constructor==Object){for(var x in a1)for(var y=0;y<Y;y++){var r=a1[x].constructor==Array?a1[x][c?y%wl:y]||'':a1[x];eval("this[y]."+x+"=typeof r=='function'?r.call(this[y],y,this):r")}return this}else{for(var r=[],y=0;y<Y;y++)r[r.length]=$.att(this[y],a1);r.last=this;return r}}for(var r={},y=0;y<Y;y++)for(var x in this[y])if(this[y].hasOwnProperty(x)&&x!='addEventListener')if(r[x])r[x][r[x].length]=this[y][x];else r[x]=[this[y][x]];return r},
att:function(a1,a2){var Y=this.length;if(arguments.length>1){for(var x=0,X=arguments.length;x<X;x+=2){var a=arguments[x],w=arguments[x+1],wl=w.length,c=arguments[x+2],c=c===1||c===true;if(w.constructor==Array)for(var y=0;y<Y;y++){var r=w[c?y%wl:y]||'';this[y].setAttribute(a,typeof r=='function'?r.call(this[y],y,this):r)}else for(var y=0;y<Y;y++)this[y].setAttribute(a,typeof w=='function'?w.call(this[y],y,this):w);if(c)x++}return this}if(a1.constructor==Object){for(var x in a1)for(var y=0;y<Y;y++){var r=a1[x].constructor==Array?a1[x][c?y%wl:y]||'':a1[x];this[y].setAttribute(x,typeof r=='function'?r.call(this[y],y,this):r)}return this}else{for(var r=[],y=0;y<Y;y++)r[r.length]=this[y].getAttribute(a1);r.last=this}return r},

// Simple attributes
True:function(a1){for(var y=0,Y=this.length;y<Y;y++)this[y][a1]=true;return this},
False:function(a1){for(var y=0,Y=this.length;y<Y;y++)this[y][a1]=false;return this},
Toggle:function(a1){for(var y=0,Y=this.length;y<Y;y++)this[y][a1]=!this[y][a1];return this},
Delete:function(a1){for(var y=0,Y=this.length;y<Y;y++)delete this[y][a1];return this},

// Other attributes
setPosition:function(a1,a2){if(typeof a2!='undefined'){a1=~a1.toString().search($.mem.reg.unit)?a1:a1+'px';a2=~a2.toString().search($.mem.reg.unit)?a2:a2+'px';for(var y=0,Y=this.length;y<Y;y++){this[y].style.left=a1;this[y].style.top=a2}}else{a1=$.arr.simple(a1);for(var y=0,Y=this.length;y<Y;y++){var a=a1[y]||a1[0];this[y].style.left=~a.x.toString().search(/[a-z]/i)?a.x:a.x+'px';this[y].style.top=~a.y.toString().search(/[a-z]/i)?a.y:a.y+'px'}}return this},
setSize:function(a1,a2){if(typeof a2!='undefined'){a1=~a1.toString().search($.mem.reg.unit)?a1:a1+'px';a2=~a2.toString().search($.mem.reg.unit)?a2:a2+'px';for(var y=0,Y=this.length;y<Y;y++){this[y].style.width=a1;this[y].style.height=a2}}else{a1=$.arr.simple(a1);for(var y=0,Y=this.length;y<Y;y++){var a=a1[y]||a1[0];this[y].style.width=~a.x.toString().search(/[a-z]/i)?a.x:a.x+'px';this[y].style.height=~a.y.toString().search(/[a-z]/i)?a.y:a.y+'px'}}return this},
position:function(a1,a2){if(typeof a1=='undefined'){for(var r=[],y=0,Y=this.length;y<Y;y++)r[r.length]={x:$.css(this[y],'left'),y:$.css(this[y],'top')};r.last=this;return r};this.setPosition(a1,a2);return this},
offsetPosition:function(a1,a2){if(typeof a1=='undefined'){for(var r=[],y=0,Y=this.length;y<Y;y++)r[r.length]={x:this[y].offsetLeft,y:this[y].offsetTop};r.last=this;return r};this.setPosition(a1,a2);return this},
size:function(a1,a2){if(typeof a1=='undefined'){for(var r=[],y=0,Y=this.length;y<Y;y++)r[r.length]={x:$.css(this[y],'width'),y:$.css(this[y],'height')};r.last=this;return r};this.setSize(a1,a2);return this},
offsetSize:function(a1,a2){if(typeof a1=='undefined'){for(var r=[],y=0,Y=this.length;y<Y;y++)r[r.length]={x:this[y].offsetWidth,y:this[y].offsetHeight};r.last=this;return r};this.setSize(a1,a2);return this},
fixedPosition:function(){for(var r=[],y=0,Y=this.length;y<Y;y++){var l=this[y],a=l.offsetLeft,b=l.offsetTop;while(l=l.offsetParent){a+=l.offsetLeft;b+=l.offsetTop}r[y]={l:a,t:b,r:a+this[y].offsetWidth,b:b+this[y].offsetHeight}}r.last=this;return r},
apply:function(a1,a2,a3){for(var a1=a2?$(a1,this).clone(a3):$(a1,this),y=0,Y=this.length;y<Y;y++)if(a1[y]){if($.css(this[y].parentNode,'position')=='static')this[y].parentNode.style.position='relative';a1[y].style.position='absolute';a1[y].style.left=this[y].offsetLeft+'px';a1[y].style.top=this[y].offsetTop+'px';this[y].parentNode.insertBefore(a1[y],this[y].nextSibling)}a1.last=this;return a1},
setLayout:function(){for(var y=0,Y=this.length;y<Y;y++)if($.css(this[y],'position')=='static')this[y].style.position='relative';return this},

// Ajax, JSON
ajax:function(a1,a2){var a2=a2||{};a2.that=this;$.get(a1,a2.soq?"this.empty().appendAll(arguments[0])":"for(var y=0,Y=this.length;y<Y;y++)this[y].innerHTML=arguments[0]",a2);return this},
json:function(a1,a2){for(var r={},a1=a1||'name',a2=a2||'value',y=0,Y=this.length;y<Y;y++){var b=this[y][a1],p=this[y][a2=='value'?this[y].type=='checkbox'||this[y].type=='radio'?'checked':'value':a2]||'';if(r[b]){if(r[b].constructor==Array)r[b][r[b].length]=p;else r[b]=[r[b],p]}else r[b]=p}return r},

// Drag & Drop
draggable:function(a1){for(var a1=a1||{},t,y=0,Y=this.length;y<Y;y++){var o={};for(var x in a1)o[x]=x!='grid'&&a1[x]&&(a1[x].constructor==Array||a1[x].constructor==SoQ)?a1[x][y]:a1[x];this[y].className+=this[y].className?' dragElement':'dragElement';t=typeof o.move=='string'?$(o.move,this[y])[0]:o.move||this[y];if(t&&$.css(t,'position')=='static')t.style.position='relative';var F=Function((typeof a1.bubbles=='undefined'&&$.drag.settings.bubbles||a1.bubbles?"":"if(arguments[0].element==this)")+"{var o=arguments.callee.o,m="+(o.move?typeof o.move=='string'?"$(o.move,this)[0]":"o.move":"this")+";if(!m.nodrag)$.drag(this,o)}");F.o=o;new SoQ(typeof o.handle=='string'?$(o.handle,this[y])[0]:o.handle||this[y]).on('mousedown',F,'$.draggable')}return this},
resizable:function(a1){var a1=a1||{},s=a1.size||6,d=s-1,c={nw:'width:'+s+'px;height:'+s+'px;left:-'+d+'px;top:-'+d+'px;cursor:nw-resize',n:'width:100%;height:'+s+'px;left:0px;top:-'+d+'px;cursor:n-resize',ne:'width:'+s+'px;height:'+s+'px;right:-'+d+'px;top:-'+d+'px;cursor:ne-resize',w:'width:'+s+'px;height:100%;left:-'+d+'px;top:0px;cursor:w-resize',e:'width:'+s+'px;height:100%;right:-'+d+'px;top:0px;cursor:e-resize',sw:'width:'+s+'px;height:'+s+'px;left:-'+d+'px;bottom:-'+d+'px;cursor:sw-resize',s:'width:100%;height:'+s+'px;left:0px;bottom:-'+d+'px;cursor:s-resize',se:'width:'+s+'px;height:'+s+'px;right:-'+d+'px;bottom:-'+d+'px;cursor:se-resize'},i=a1.dir||['nw','n','ne','w','e','sw','s','se'],Q=i.length;for(var y=0,Y=this.length;y<Y;y++){var o={move:'this<',type:i};for(var x in a1)o[x]=x!='grid'&&(a1[x].constructor==Array||a1[x].constructor==SoQ)?a1[x][y]:a1[x];var r=new SoQ(this[y]).child('.resize').remove().last.appendAll('!<div style="position:absolute;padding:0">',Q).css('background',$.img.empty).aClass('resizeElement').draggable(o);for(var q=0;q<Q;q++)new SoQ(r[q]).css(c[i[q]]);}return this},
dragTo:function(a1,a2){for(var a2=a2||0,y=0,Y=this.length;y<Y;y++){var d=this[y].dt=this[y].dt||{t:new SoQ(this[y]),s:[],r:[],f:[],i:[]};d.s[d.s.length]=a1;d.r[d.r.length]=d.f[d.f.length]=$(a1,this).range(d.t);d.i[d.i.length]=a2}return this.on('dragstart',"for(var d=this.dt,x=0,X=d.s.length;x<X;x++)d.r[x]=d.f[x]=$(d.s[x],this).range(d.t)").on('dragmove',"for(var d=this.dt,e=arguments[0],x=0,X=d.s.length;x<X;x++){for(var s=$(d.s[x],this),r=s.range(d.t),y=0,Y=r.length;y<Y;y++)if(d.r[x][y]&&!r[y]){e.related=s[y];d.t.firecall('dragleave:'+d.i[x],e)}for(y=0;y<Y;y++)if(!d.r[x][y]&&r[y]){e.related=s[y];d.t.firecall('dragenter:'+d.i[x],e)}d.r[x]=r}",'$.dragTo').on('dragend',"for(var d=this.dt,e=arguments[0],x=0,X=d.s.length;x<X;x++){for(var s=$(d.s[x],this),r=s.range(d.t),y=0,Y=r.length;y<Y;y++)if(!r[y]){e.related=s[y];e.startRange=d.f[x][y];d.t.firecall('dragout:'+d.i[x],e)}for(y=0;y<Y;y++)if(r[y]){e.related=s[y];e.startRange=d.f[x][y];d.t.firecall('dragin:'+d.i[x],e)}d.r[x]=r}",'$.dragTo')},

// SoQ
save:function(a1,a2){$.mem.obj[a1||0]=a2?this.clone(1):this;$.mem.obj[a1||0].savename=a1||0;return this},
load:function(a1,a2){var r=$.mem.obj[a1||0];r.last=this;return r},
add:function(a1,a2){for(var r=[],y=0,Y=this.length;y<Y;y++)r[y]=this[y];xx:for(var a1=$(a1,a2||this),x=0,X=a1.length;x<X;x++){for(var y=0;y<Y;y++)if(this[y]==a1[x])continue xx;r[r.length]=a1[x]}return new SoQ(r).L(this).S(this.selector+', '+a1.selector)},
not:function(a1,a2){yy:for(var a1=$(a1,a2||this),X=a1.length,r=[],y=0,Y=this.length;y<Y;y++){for(var x=0;x<X;x++)if(this[y]==a1[x])continue yy;r[r.length]=this[y]}return new SoQ(r).L(this).S(this.selector+':not('+a1.selector+')')},
filter:function(a1){if(typeof a1=='function')r=$.filter($.arr(this),a1);else yy:for(var a1=$(a1,this),X=a1.length,r=[],y=0,Y=this.length;y<Y;y++)for(var x=0;x<X;x++)if(this[y]==a1[x]){r[r.length]=this[y];continue yy}return new SoQ(r).L(this).S(this.selector+':filter('+(typeof a1=='function'?'?':a1)+')')},
index:function(a1){for(var a1=a1.constructor==Array||a1.constructor==SoQ?a1[0]:a1,y=0,Y=this.length;y<Y;y++)if(this[y]===a1)return y;return -1},

// Other
animHover:function(a1,a2,a3,a4){for(var f='var t=arguments.callee.t,l;',po=this.offsetSize(),pf=this.fixedPosition(),a1=$.css.sepObj(a1),a2=a2||100,a3=a3||a2,a,b,o,y=0,Y=this.length;y<Y;y++)for(var x in a1){a=$.css(this[y],$.unCamelCase(x)),b=a1[x],a=~x.toLowerCase().indexOf('color')?"["+$.brackets($.color.rgb(a))+"]":"'"+a+"'",b=~x.toLowerCase().indexOf('color')?"["+$.brackets($.color.rgb(b))+"]":"'"+b+"'";f+="l=Math.abs(e.mouseX-"+(pf[y].l+po[y].x/2)+")/"+a2+"+Math.abs(e.mouseY-"+(pf[y].t+po[y].y/2)+")/"+a3+";";f+="t["+y+"].style."+$.camelCase(x)+"="+"$.avg("+a+","+b+","+(a4?"":"1-")+"$.range(l,0,1));"}f=Function('e',f);f.t=this;$(document).on('mousemove',f);return this},
template:function(a1){for(var y=0,Y=a1.length,t=this;y<Y;y++)a1[y].constructor==Array?t=t[a1[y][0]].apply(t,a1[y][1]):t=t[a1[y]];return t},
valid:function(a1,a2,a3){for(var a2=$.func(a2),a3=$.func(a3),y=0,Y=this.length;y<Y;y++)if(this[y].value&&~this[y].value.search(a1))a1.call(this[y],y,this);else a2.call(this[y],y,this);return this},
range:function(a1){var r=[],a1=$(a1,this),Z=a1.length,tp=this.fixedPosition(),ap=a1.fixedPosition();r.last=this;r.and=1;r.or=0;yy:for(var y=0,Y=this.length;y<Y;y++){r[y]=0;for(var z=0;z<Z;z++)if(tp[y].b>ap[z].t&&tp[y].t<ap[z].b&&tp[y].r>ap[z].l&&tp[y].l<ap[z].r){r[y]=r.or=1;continue yy}r.and=0}return r},
table:function(a1,a2){return this.create('table').create('tbody').create('tr',a1||2).create('td',a2||2)},

// Important
toString:function(){if(!this.length)return '[object SoQ(0)]';for(var r=this[0]==document?'document':this[0].tagName||'text',y=1,Y=this.length;y<Y;y++)r+=','+(this[y]==document?'document':this[y].tagName||'text');return '[object SoQ('+Y+'): '+r.toLowerCase()+']'},
L:function(a1){this.last=a1;return this},S:function(a1){this.selector=a1;return this},
savename:'',last:null,selector:'?',constructor:SoQ

};

// ------------------------------------------------------------------------------ SoQ prototype each
//Attributes
$.each(['html','htmlBefore','htmlAfter'],function(n){var t="if(this[y].nodeValue)this[y].nodeValue="+["a","a+t","t+a"][n]+";else{"+["this[y].innerHTML=a","var e=document.createElement('span'),b=0,l;e.innerHTML=a;while(l=e.firstChild)this[y].insertBefore(l,this[y].childNodes[b++])","var e=document.createElement('span'),l;e.innerHTML=a;while(l=e.firstChild)this[y].appendChild(l)"][n]+"}";$.e[this]=Function("a1","a2","var Y=this.length;if(a1||a1===''){if(a1.constructor==Array)for(var y=0;y<Y;y++){var t=this[y].nodeValue||this[y].innerHTML,a=a1[a2?y%a1.length:y]||t;"+t+"}else if(typeof a1=='function')for(var y=0;y<Y;y++){var t=this[y].nodeValue||this[y].innerHTML,a=a1.call(this[y],y,this,t);"+t+"}else for(var y=0;y<Y;y++){var t=this[y].nodeValue||this[y].innerHTML,a=a1;"+t+"}return this}var r=[];for(var y=0;y<Y;y++)r[r.length]=this[y].nodeValue||this[y].innerHTML;r.last=this;return r")})
$.each(['text','textBefore','textAfter'],function(n){$.e[this]=Function("a1","a2","var Y=this.length;if(a1||a1===''){if(a1.constructor==Array)for(var y=0;y<Y;y++){var t=this[y].value||'',a=a1[a2?y%a1.length:y]||t;this[y]."+["innerHTML='';this[y].appendChild(document.createTextNode(a))","insertBefore(document.createTextNode(a),this[y].firstChild)","appendChild(document.createTextNode(a))"][n]+"}else for(var y=0;y<Y;y++){var a=typeof a1=='function'?a1.call(this[y],y,this):a1;if(this[y].nodeValue==1){this[y]."+["innerHTML='';this[y].appendChild(document.createTextNode(a))","insertBefore(document.createTextNode(a),this[y].firstChild)","appendChild(document.createTextNode(a))"][n]+"}else{this[y].nodeValue"+["=a","=a+this[y].nodeValue","+=a"][n]+"}}return this}var r=[];for(var y=0;y<Y;y++)r[r.length]=this[y].nodeValue||this[y].innerHTML.replace($.mem.reg.htmlTag,'');r.last=this;return r")})
$.each(['value','valueBefore','valueAfter'],function(n){$.e[this]=Function("a1","a2","var Y=this.length;if(a1||a1===''){if(a1.constructor==Array)for(var y=0;y<Y;y++){var t=this[y].value||'',a=a1[a2?y%a1.length:y]||t;this[y].value="+["a","a+t","t+a"][n]+"}else if(typeof a1=='function')for(var y=0;y<Y;y++){var t=this[y].value||'',a=a.call(this[y],y,this);this[y].value="+["a","a+t","t+a"][n]+"}else for(var y=0;y<Y;y++){var t=this[y].value||'';this[y].value="+["a1","a1+t","t+a1"][n]+"}return this}var r=[];for(var y=0;y<Y;y++)r[r.length]=this[y].value||'';r.last=this;return r")})
$.each(['addClass','removeClass','toggleClass'],function(n){var s1,s2;$.e[this]=$.e[this.charAt(0)+this.slice(-5)]=Function("a1","for(var y=0,Y=this.length;y<Y;y++)"+[s1="{var s=this[y].className.replace(RegExp('\\\\b'+a1+'\\\\b','gi'),'').split($.mem.reg.space);s[s.length]=a1;this[y].className=s.join(' ').replace($.mem.reg.classSpace,'')}",s2="this[y].className=this[y].className.replace(RegExp('\\\\b'+a1+'\\\\b','gi'),'')","if(!~this[y].className.search(RegExp('\\\\b'+a1+'\\\\b','gi')))"+s1+"else "+s2][n]+";return this")})

// Animations
$.each(['stop','pause','start'],function(n){$.e[this]=Function("a1","if(a1)a1=a1.replace('background','background-color');if(!a1){for(var y=0,Y=this.length;y<Y;y++)if(this[y].anim)for(var x in this[y].anim)if(x!='length'){"+["this[y].anim[x].stop();this[y].anim.length--;delete this[y].anim[x]","this[y].anim[x].stop()","this[y].anim[x].start()"][n]+"}}else{a1=$.css.sepStr(a1).split($.mem.reg.commaSemi);for(var x=0,X=a1.length;x<X;x++)for(var y=0,Y=this.length;y<Y;y++)if(this[y].anim&&this[y].anim[a1[x]]){"+["this[y].anim[a1[x]].stop();this[y].anim.length--;delete this[y].anim[a1[x]]","this[y].anim[a1[x]].stop()","this[y].anim[a1[x]].start()"][n]+"}}return this")})
$.each(['show','hide','toggle'],function(n){$.e[this]=Function("for(var y=0,Y=this.length;y<Y;y++)this[y].style.display="+["$.css.displayed(this[y])","'none'","this[y].style.display?this[y].style.display=='none'?$.css.displayed(this[y]):'none':$.css(this[y],'display')=='none'?$.css.displayed(this[y]):'none'"][n]+";return this")})

// Document Object Model
$.each(['before','insertBefore','after','insertAfter'],function(n){$.e[this]=Function("a1","a2","for(var r=[],a1=$(a1,a2||this),y=0,Y=this.length,Y=Y<a1.length?Y:a1.length;y<Y;y++)r[y]="+["this","a1","this","a1"][n]+"[y].parentNode.insertBefore("+["a1[y],this[y]","this[y],a1[y]","a1[y],this[y].nextSibling","this[y],a1[y].nextSibling"][n]+");return new SoQ(r).L(this).S(this.selector+'"+[' - *',' + *'][n]+"')")})
$.each(['beforeAll','afterAll'],function(n){$.e[this]=Function("a1","a2","for(var a1=$(a1,a2||this),X=a1.length,r=[],x="+["0;x<X;x++","X-1;x>=0;x--"][n]+")r[r.length]=this[0].parentNode.insertBefore(a1[x],this[0]"+['','.nextSibling'][n]+");for(var y=1,Y=this.length;y<Y;y++){var a=a1.clone(1);for(var x="+["0;x<X;x++","X-1;x>=0;x--"][n]+")r[r.length]=this[y].parentNode.insertBefore(a[x],this[y]"+['','.nextSibling'][n]+")}return new SoQ(r).L(this).S(this.selector+'"+[' - *',' + *'][n]+"')")})
$.each(['insertBeforeAll','insertAfterAll'],function(n){$.e[this]=Function("a1","a2","var a1=$(a1,a2||this),Y=this.length,r=[];for(var y="+["0;y<Y;y++","Y-1;y>=0;y--"][n]+")r[r.length]=a1[0].parentNode.insertBefore(this[y],a1[0]"+['','.nextSibling'][n]+");for(var x=1,X=a1.length;x<X;x++){var c=this.clone(1);for(var y="+["0;y<Y;y++","Y-1;y>=0;y--"][n]+")r[r.length]=a1[x].parentNode.insertBefore(c[y],a1[x]"+['','.nextSibling'][n]+")}return new SoQ(r).L(this).S(this.selector+'"+[' - *',' + *'][n]+"')")})
$.each(['append','appendTo','prepend','prependTo'],function(n){$.e[this]=Function("a1","a2","for(var a1=$(a1,a2||this),r=[],y=0,Y=this.length,Y=Y<a1.length?Y:a1.length;y<Y;y++)r[y]="+["this[y].appendChild(a1[y]","a1[y].appendChild(this[y]","this[y].insertBefore(a1[y],this[y].childNodes[0]","a1[y].insertBefore(this[y],a1[y].childNodes[0]"][n]+");return new SoQ(r).L(this).S(this.selector+'"+[' > *:-1',' > *:0'][n]+"')")})
$.each(['appendAll','prependAll'],function(n){$.e[this]=Function("a1","a2","for(var r=[],a1=$(a1,a2||this)"+["",".reverse()"][n]+",X=a1.length,x=0;x<X;x++)r[r.length]=this[0]."+["appendChild(a1[x]","insertBefore(a1[x],this[0].childNodes[0]"][n]+");for(var y=1,Y=this.length;y<Y;y++){var c=a1.clone(1);for(var x=0;x<X;x++)r[r.length]=this[y]."+["appendChild(c[x]","insertBefore(c[x],this[y].childNodes[0]"][n]+")}return new SoQ(r).L(this).S(this.selector+"+["' > *:-'+X+':-1'","' > *:0:'+(X-1)"][n]+")")})
$.each(['appendAllTo','prependAllTo'],function(n){$.e[this]=Function("a1","a2","for(var r=[],t=this"+["",".reverse()"][n]+",a1=$(a1,a2||this),Y=t.length,y=0;y<Y;y++)r[y]=a1[0]."+["appendChild(t[y]","insertBefore(t[y],a1[0].childNodes[0]"][n]+");for(var x=1,X=a1.length;x<X;x++){var c=t.clone(1);for(var y=0;y<Y;y++)r[r.length]=a1[x]."+["appendChild(c[y]","insertBefore(c[y],a1[x].childNodes[0]"][n]+")}return new SoQ(r).L(this).S(this.selector+"+["' > *:-'+X+':-1'","' > *:0:'+(X-1)"][n]+")")})
$.each(['replace','replaceWith'],function(n){$.e[this]=Function("a1","a2","for(var r=[],p,a1=$(a1,this),c=a2?"+['a1','this'][n]+".clone(1):"+['a1','this'][n]+",y=0,Y=this.length;y<Y;y++)if((p="+['this','a1'][n]+"[y].parentNode)&&c[y])p.replaceChild(r[y]=c[y],"+['this','a1'][n]+"[y]);return new SoQ(r).L(this).S(this.selector)")})
$.each(['replaceAll','replaceAllWith'],function(n){$.e[this]=Function("a1","a2","for(var r=[],a1=$(a1,this),X="+['a1','this'][n]+".length,p="+['this','a1'][n]+"[0].parentNode,t=a2,x=0;x<X;x++){if("+['a1','this'][n]+"[x]=="+['this','a1'][n]+"[0])t=1;p.insertBefore("+['a1','this'][n]+"[x],"+['this','a1'][n]+"[0]);r[r.length]="+['a1','this'][n]+"[x]}if(!t)p.removeChild("+['this','a1'][n]+"[0]);for(var y=1,Y="+['this','a1'][n]+".length;y<Y;y++){var p="+['this','a1'][n]+"[y].parentNode,c="+['a1','this'][n]+".clone(1),t=a2;for(var x=0;x<X;x++){if("+['a1','this'][n]+"[x]=="+['this','a1'][n]+"[y])t=1;p.insertBefore(c[x],"+['this','a1'][n]+"[y]);r[r.length]=c[x]}if(!t)p.removeChild("+['this','a1'][n]+"[y])}return new SoQ(r).L(this).S(this.selector)")})

// Selector
$.each(['first-child','last-child','first-of-type','last-of-type'],function(n){$.selector[this]=Function("yy:for(var r=[],l,y=0,Y=this.length;y<Y;y++){l=this[y];while(l=l."+["previous","next","previous","next"][n]+"Sibling)if("+["l.nodeType==1","l.nodeType==1","l.tagName==this[y].tagName","l.tagName==this[y].tagName"][n]+")continue yy;r[r.length]=this[y]}return r")})
$.each(['child','last-child','of-type','last-of-type'],function(n){$.selector['nth-'+this]=Function("a1","yy:for(var r=[],y=0,Y=this.length;y<Y;y++)for(var l=this[y].parentNode.chnth||(this[y].parentNode.chnth=$.choose($.dom.child(this[y].parentNode"+["","",",this[y].tagName",",this[y].tagName"][n]+")"+["",".reverse()",".reverse()",""][n]+",a1)),i=0,I=l.length;i<I;i++)if(l[i]==this[y]){r[r.length]=l[i];continue yy}for(var y=0,Y=this.length;y<Y;y++)this[y].parentNode.chnth=null;return r")})

// Other
$.each(['fire','firecall'],function(n){$.e[this]=Function("a1","a2","a3","for(var p=typeof a1=='string'?a1.split(':').slice(1).join(':')||'':'',a1=typeof a1=='string'?a1.split(':')[0]:0,i=(typeof a2=='string'||typeof a2=='number'?a2:a3)||0,v=typeof a2=='object'?a2:a3||{},y=0,Y=this.length;y<Y;y++){if(a1&&this[y][a1])this[y][a1](v);if(this[y].ev)for(var e=this[y].ev,x=0,X=e.length;x<X;x++)if((!a1||a1=='all'||a1==e[x].event)&&(!i||i==e[x].id)&&(!p||!e[x].parms||p==e[x].parms))e[x]."+["func","call"][n]+".call(this[y],v,e[x].num,e[x].parms)}return this")})
$.each(['Text','Order','Child'],function(n){$.e['sortBy'+this]=Function("return this.sort(function(a1,a2){"+["return a1.innerHTML.replace($.mem.reg.htmlTag,'')<a2.innerHTML.replace($.mem.reg.htmlTag,'')","var e=document.getElementsByTagName('*'),i=j=-1;for(var x=0,X=e.length;x<X;x++){if(e[x]==a1)i=x;if(e[x]==a2)j=x;if(i>=0&&j>=0)return i<j}return 0","return a1.childNodes.length<a2.childNodes.length"][n]+"})")})
$.each(['get','post','head'],function(n){$[this]=Function('a1','a2','a3',"var o=typeof a2=='object'?a2:a3||{};o.url=a1;o.success=typeof a2=='function'||typeof a2=='string'?o.success?$.func([a2,o.success]):a2:typeof a3=='function'||typeof a3=='string'?o.success?$.func([a3,o.success]):a3:'';o.type='"+['get','post','head'][n]+"';return $.ajax(o).run()")})

// ------------------------------------------------------------------------------ Configuration
// Events
$.event.type={
  mouseenter:{event:'mouseover',test:function(e){return !$.contains(this.getElementsByTagName("*"),e.related)&&(e.element==this||$.contains(this.getElementsByTagName("*"),e.element)&&e.related!=this)}},
  mouseleave:{event:'mouseout',test:function(e){return e.related!=this&&!$.contains(this.getElementsByTagName("*"),e.related)}},
  mouseright:{event:'mousedown',test:function(e){return e.button==2}},
  mousewheel:{event:$.browser=='firefox'?'DOMMouseScroll':'mousewheel',test:function(e,n,s){return !s||(s=='down'&&e.wheel>0)||(s=='up'&&e.wheel<0)}},
  keypush:{event:'keydown',test:function(e,n,s){return e.key==$.event.key[s]}}
};

// Animations
$.anim={
  types:{
    slower:function(n,m){return Math.abs(Math.sin($.num.pi2*((n/m)%2)))},
    faster:function(n,m){var o=Math.ceil(n/m);return Math.abs(1-Math.sin($.num.pi2*(o+(o%2==0?1:0)-(n/m))))},
    normal:function(n,m){return n/m},
    linear:function(n,m){return ((n%m)/m)||1},
    wave:function(n,m){return 1-(Math.cos($.num.pi*n/m)/2+.5)},
    sin:function(n,m){var r=Math.sin(Math.PI*2*n/m);return r>-1e-9&&r<1e-9?0:r/2},
    cos:function(n,m){return (1-Math.cos(Math.PI*2*n/m))/2},
    alter:function(n,m){var o=Math.ceil(n/m);return o%2==0?Math.abs(1-Math.sin($.num.pi2*(o+1-(n/m)))):Math.abs(Math.sin($.num.pi2*(n/m)))},
    alter2:function(n,m){var o=Math.ceil(n/m);return o%2==0?Math.abs(Math.sin($.num.pi2*(n/m))):Math.abs(1-Math.sin($.num.pi2*(o-(n/m))))}},
  type:'wave',
  time:800,
  fps:50,
  repeat:1,
  stop:1,
  off:0
};

// Slide
$.slide={
  hide:'display',
  fade:{opacity:0},
  size:{width:0,height:0,fontSize:0,lineHeight:0,padding:0},
  x:{width:0,marginLeft:0,marginRight:0,paddingLeft:0,paddingRight:0},
  y:{height:0,marginTop:0,marginBottom:0,paddingTop:0,paddingBottom:0},
  explode:{width:'+=50',height:'+=50',left:'-=25',top:'-=25',opacity:0},
  middleX:{width:0,left:[function(){return $.css(this,'left','num')+this.offsetWidth/2+'px'},'$']},
  middleY:{height:0,top:[function(){return $.css(this,'top','num')+this.offsetHeight/2+'px'},'$']}
};

// Ajax
$.ajax.time=1000;
$.ajax.dir='';
$.ajax.type='get';
$.ajax.queue=0;

// Drag & Drop
$.drag.proportions=0;
$.drag.symmetry=0;
$.drag.factor=1;
$.drag.settings={
  type:'xy',
  grid:[1,1],
  reverse:0,
  helper:0,
  delay:0,
  bubbles:0
};

// Other
$.color.transparent='#ffffff';
$.key.stop=1;
