/* Qatrix v1.0 / http://qatrix.com / Copyright (c) 2012, Angel Lai - MIT license. */
(function(n,e,l){var x=/(^\n+)|(\n+$)/g,F=/^(?:\{.*\}|\[.*\])$/,G=/-([a-z])/ig,H=/\r\n/g,I=/[\-\+0-9\.]/ig,r=/\s+/,J=/(^\s*)|(\s*$)/g,K=/opacity=([^)]*)/,L=/^[\],:{}\s]*$/,M=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,N=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,O=/(?:^|:|,)(?:\s*\[)+/g,y=["height","margin-top","margin-bottom","padding-top","padding-bottom"],z=[],A=function(){$each(z,function(a,b){b()});e.removeEventListener("DOMContentLoaded",A,!1)},q=function(a,b){var c=typeof b;if("string"===c){var f=(a&&a.ownerDocument||e).createDocumentFragment(),h=$new("div");for(h.innerHTML=b;null!=h.childNodes[0];)f.appendChild(h.childNodes[0]);b=f}"number"===c&&(b+="");return b},d=function(a,b){if(null!==a){var c=a.length;return b?c!==l?(0<c&&$each(a,function(a,c){b(c)}),a):b(a):a}},B=function(a,b,c,f){return d(a,function(a){var u={},i="show"===b,d=a.style,s,j,g;i?(s=$data.get(a,"_display"),s||(j=$append(e.body,$new(a.nodeName)),s=$style.get(j,"display"),$remove(j),$data.set(a,"_display",s)),d.display=s):s="none";c?(g=$style.get(a,"overflow"),d.overflow="hidden",u.opacity=i?{from:0,to:1}:{from:1,to:0},$each(y,function(b,c){u[c]=i?{from:0,to:$style.get(a,c)}:0}),$animate(a,u,c,function(){$each(y,function(b,a){d[a]=""});$style.set(a,"opacity","");d.display=s;d.overflow=g;f&&f()})):d.display=s})},C=function(a,b){if("object"===typeof b){var c=[];$each(b,function(b,h){"object"===typeof h?c.push(C(a+"["+b+"]",h)):c.push(a+"["+$url(b)+"]="+h)});return c.join("&")}return $url(a)+"="+$url(b)},P=e.getElementsByClassName?function(a,b,c){return d(a.getElementsByClassName(b),c)}:function(a,b,c){var f=[],h=RegExp("\\b"+b+"\\b");$tag(a,"*",function(b){h.test(b.className)&&f.push(b)});return d(f,c)},Q=e.querySelectorAll?function(a,b){return d(e.querySelectorAll(a),b)}:function(a,b){var c=k.Qselector.styleSheet,f=[];c.addRule(a,"q:a");$tag(e,"*",function(b){"a"===b.currentStyle.q&&f.push(b)});c.cssText="";return d(f,b)},R={camelCase:function(a){return a.replace("-ms-","ms-").replace(G,function(b,a){return(a+"").toUpperCase()})},replace:function(a,b){for(var c in b)a=a.replace(RegExp(c,"ig"),b[c]);return a},slashes:function(a){return $string.replace(a,{"\\\\":"\\\\","\b":"\\b","\t":"\\t","\n":"\\n","\r":"\\r",'"':'\\"'})},trim:String.prototype.trim?function(a){return a.trim()}:function(a){return a.replace(J,"")}},S=n.localStorage?{set:function(a,b){localStorage[a]="object"===typeof b?$json.encode(b):b},get:function(a){a=localStorage[a];return $json.isJSON(a)?$json.decode(a):a||""},remove:function(a){localStorage.removeItem(a);return!0}}:{set:function(a,b){b="object"===typeof b?$json.encode(b):b;$data.set(k.storage,a,b);k.storage.save("Qstorage")},get:function(a){k.storage.load("Qstorage");return $data.get(k.storage,a)||""},remove:function(a){k.storage.load("Qstorage");$data.remove(k.storage,a);return!0}},T={add:function(a,b,c){return d(a,function(a){if("object"===typeof b)return $each(b,function(b,c){$event.add(a,b,c)}),a;if(3===a.nodeType||8===a.nodeType||!b||!c)return!1;if(a.addEventListener){if("mouseenter"===b||"mouseleave"===b)b="mouseenter"===b?"mouseover":"mouseout",c=$event.handler.mouseenter(c);a.addEventListener(b,c,!1)}else{if(a.getAttribute){var h=c.toString();if($data.get(a,"event-"+b+"-"+h))return!1;$data.set(a,"event-"+b+"-"+h,!0)}a.attachEvent("on"+b,c)}return a})},remove:e.removeEventListener?function(a,b,c){return d(a,function(a){if("object"===typeof b)return $each(b,function(b,c){$event.remove(a,b,c)}),a;a.removeEventListener(b,c,!1);return a})}:function(a,b,c){return d(a,function(a){if("object"===typeof b)return $each(b,function(b,c){$event.remove(a,b,c)}),a;a.detachEvent("on"+b,c);a.removeAttribute&&$attr.remove(a,"event-"+b+"-"+c.toString());return a})},handler:{mouseenter:function(a){return function(b){var c=b.relatedTarget;if(this!==c){for(;c&&c!==this;)c=c.parentNode;c!==this&&a.call(this,b)}}}},key:function(a){return a.which||a.charCode||a.keyCode},metaKey:function(a){return a.metaKey||a.ctrlKey},target:function(a){return a.target?a.target:a.srcElement||e}},U={get:n.getComputedStyle?function(a,b){if(null!==a){var c=e.defaultView.getComputedStyle(a,null).getPropertyValue(b);return"auto"===c||""===c?0:c}return!1}:function(a,b){if(null!==a){var c="opacity"===b?K.test(a.currentStyle.filter)?0.01*parseFloat(RegExp.$1)+"":1:a.currentStyle[$string.camelCase(b)];return"auto"===c?0:c}return!1},set:e.documentElement.style.opacity!==l?function(a,b,c){return d(a,function(a){a.style[b]=c;return!0})}:function(a,b,c){return d(a,function(a){if(!a.currentStyle||!a.currentStyle.hasLayout)a.style.zoom=1;"opacity"===b?(a.style.filter="alpha(opacity="+100*c+")",a.style.zoom=1):a.style[b]=c;return!0})}},j;j=e.documentElement.style;if(j.webkitTransition!==l||j.MozTransition!==l||j.OTransition!==l||j.MsTransition!==l||j.transition!==l){j=e.documentElement.style;j=j.webkitTransition!==l?"Webkit":j.MozTransition!==l?"Moz":j.OTransition!==l?"O":j.MsTransition!==l?"ms":"";var D=j+"Transition",E=j+"Transform";j=function(a,b,c,f){return d(a,function(a){var d=[],i=[],e=[],j=[],k=a.style,g,p;for(g in b){i[g]=$string.camelCase(g);b[g].from!==l?(b[g].to=b[g].to||0,d[g]=!$css.number[g]?parseInt(b[g].to):b[g].to,e[g]=$css.unit(g,b[g].to),$style.set(a,i[g],parseInt(b[g].from)+e[g])):(d[g]=!$css.number[g]?parseInt(b[g]):b[g],e[g]=$css.unit(g,b[g]),$style.set(a,i[g],$style.get(a,i[g])));if("left"===g||"top"===g)p=$offset(a),$style.set(a,g,("left"===g?p.left:p.top)+"px");j.push(g)}setTimeout(function(){k[D]="all "+c+"ms";if(b.left||b.top)k[E]="translateZ(0)";$each(j,function(a,b){k[i[b]]=d[b]+e[b]})},15);setTimeout(function(){k[D]=k[E]="";f&&f(a)},c||300);return a})}}else j=function(a,b,c,f){return d(a,function(a){var d=0,i=0,e=0,j=0,k=[],g=[],p=[],n=[],q=[],m,r;c=c||300;for(m in b)p.push($string.camelCase(m)),b[m].from!==l?(e=b[m].to,g.push(!$css.number[m]?parseInt(b[m].from):b[m].from),$style.set(a,p[i],g[i]+$css.unit(m,e))):(e=b[m],"left"===m||"top"===m?(r=$offset(a),g.push("left"===m?r.left:r.top)):g.push(parseInt($style.get(a,$string.camelCase(m))))),k.push(!$css.number[m]?parseInt(e):e),n.push($css.unit(m,e)),i++,j++;for(e=0;30>e;e++){q[e]=[];for(i=0;i<j;i++)q[e][p[i]]=g[i]+(k[i]-g[i])/30*e+("opacity"===p[i]?"":n[i])}for(;30>i;i++)setTimeout(function(){for(i=0;i<j;i++)$style.set(a,p[i],q[d][p[i]]);d++},c/30*i);setTimeout(function(){for(i=0;i<j;i++)$style.set(a,p[i],q[d][p[i]]);f&&f(a)},c);return a})};var V={decode:n.JSON?function(a){return $json.isJSON(a)?JSON.parse($string.trim(a)):!1}:function(a){return $json.isJSON(a)?(new Function("return "+$string.trim(a)))():!1},encode:n.JSON?function(a){return JSON.stringify(a)}:function(a){a:{var b=[],c,f,h,d;for(c in a){h=a[c];f=typeof h;if("undefined"===f){a=void 0;break a}if("function"!==f){switch(f){case"object":d=null===h?h:h.getDay?'"'+(1E3-10*~h.getUTCMonth()+h.toUTCString()+1E3+h/1).replace(/1(..).*?(\d\d)\D+(\d+).(\S+).*(...)/,"$3-$1-$2T$4.$5Z")+'"':h.length?"["+function(){var a=[];$each(h,function(b,c){a.push("string"===typeof c?'"'+$string.slashes(c)+'"':c)});return a.join(",")}()+"]":$json.encode(h);break;case"number":d=!isFinite(h)?null:h;break;case"boolean":case"null":d=h;break;case"string":d='"'+$string.slashes(h)+'"'}b.push('"'+c+'":'+d)}}a=b.join(",")}return"{"+a+"}"},isJSON:function(a){return"string"===typeof a&&""!==$string.trim(a)?L.test(a.replace(M,"@").replace(N,"]").replace(O,"")):!1}},W=navigator.userAgent.toLowerCase(),t={msie:/msie/,msie6:/msie 6\.0/,msie7:/msie 7\.0/,msie8:/msie 8\.0/,msie9:/msie 9\.0/,msie10:/msie 10\.0/,firefox:/firefox/,opera:/opera/,webkit:/webkit/,iPad:/ipad/,iPhone:/iphone/,android:/android/},v;for(v in t)t[v]=t[v].test(W);var k={$:function(a){return e.getElementById(a)},$each:function(a,b){var c=0,f=a.length,h;if(f!==l)for(;c<f&&!1!==b.call(a[c],c,a[c++]););else for(h in a)b.call(a[h],h,a[h])},$id:function(a,b){var c=[],f;if("string"===typeof a)return f=$(a),null!==f&&b&&b(f),f;$each(a,function(a,b){f=$(b);null!==f&&c.push(f)});return d(c,b)},$dom:function(a,b){b&&(a.length?d(a,b):b(a));return a},$tag:function(a,b,c){return d(a.getElementsByTagName(b),c)},$class:P,$select:Q,$new:function(a,b){var c=e.createElement(a);if(b)try{return $each(b,function(a,b){switch(a){case"css":case"style":$css.set(c,b);break;case"innerHTML":case"html":$html(c,b);break;case"className":case"class":$className.set(c,b);break;case"text":$text(c,b);break;default:$attr.set(c,a,b)}}),c}catch(f){}finally{c=null}return c},$string:R,$attr:{get:function(a,b){return a.getAttribute(b)},set:function(a,b,c){return d(a,function(a){a.setAttribute(b,c)})},remove:function(a,b){return d(a,function(a){a.removeAttribute(b)})}},$data:{get:function(a,b){var c=$attr.get(a,"data-"+b);return"true"===c?!0:"false"===c?!1:"null"===c?"":null===c?"":""===c?"":!isNaN(parseFloat(c))&&isFinite(c)?+c:F.test(c)?$json.decode(c):c},set:function(a,b,c){return d(a,function(a){c="object"===typeof c?$json.encode(c):c;"object"===typeof b?$each(b,function(b,c){$attr.set(a,"data-"+b,c)}):$attr.set(a,"data-"+b,c);return a})},remove:function(a,b){return d(a,function(a){$attr.remove(a,"data-"+b)})}},$storage:S,$event:T,$clear:function(a){a&&(clearTimeout(a),clearInterval(a));return null},$ready:function(a){if("complete"===e.readyState)return setTimeout(a,1);if(e.addEventListener)z.push(a),e.addEventListener("DOMContentLoaded",A,!1);else{var b=function(){try{e.documentElement.doScroll("left")}catch(c){setTimeout(b,1);return}a()};b()}},$css:{get:function(a,b){return $style.get(a,b)},set:function(a,b,c){return d(a,function(a){"object"===typeof b?$each(b,function(b,c){$style.set(a,$string.camelCase(b),$css.fix(b,c))}):$style.set(a,$string.camelCase(b),$css.fix(b,c));return a})},number:{fontWeight:!0,lineHeight:!0,opacity:!0,zIndex:!0},unit:function(a,b){if($css.number[a])return"";var c=b.toString().replace(I,"");return""===c?"px":c},fix:function(a,b){"number"===typeof b&&!$css.number[a]&&(b+="px");return null===b&&isNaN(b)?!1:b}},$style:U,$pos:function(a,b,c){return d(a,function(a){$style.set(a,"left",b+"px");$style.set(a,"top",c+"px");return a})},$offset:function(a){var b=e.body,c=e.documentElement,f=a.getBoundingClientRect();return{top:f.top+(n.scrollY||b.parentNode.scrollTop||a.scrollTop)-(c.clientTop||b.clientTop||0),left:f.left+(n.scrollX||b.parentNode.scrollLeft||a.scrollLeft)-(c.clientLeft||b.clientLeft||0),width:a.offsetWidth,height:a.offsetHeight}},$append:function(a,b){return d(a,function(a){return a.appendChild(q(a,b))})},$prepend:function(a,b){return d(a,function(a){return a.firstChild?a.insertBefore(q(a,b),a.firstChild):a.appendChild(q(a,b))})},$before:function(a,b){return d(a,function(a){return a.parentNode.insertBefore(q(a,b),a)})},$after:function(a,b){return d(a,function(a){return a.nextSibling?a.parentNode.insertBefore(q(a,b),a.nextSibling):a.parentNode.appendChild(q(a,b))})},$remove:function(a){return d(a,function(a){return null!==a&&a.parentNode?a.parentNode.removeChild(a):a})},$empty:function(a){return d(a,function(a){a.innerHTML="";return a})},$html:function(a,b){return d(a,function(a){if(b){try{a.innerHTML=b}catch(f){$append($empty(a),b)}return a}return 1===a.nodeType?a.innerHTML:null})},$text:function(a,b){return d(a,function(a){if(b)return $empty(a),a.appendChild(e.createTextNode(b)),a;var f="",d=a.textContent;if((d||a.innerText)===a.innerHTML)f=d?$string.trim(a.textContent.replace(x,"")):a.innerText.replace(H,"");else for(a=a.firstChild;a;a=a.nextSibling)if(d=a.nodeType,3===d&&""!==$string.trim(a.nodeValue)&&(f+=a.nodeValue.replace(x,"")+(a.nextSibling&&"br"!==a.nextSibling.tagName.toLowerCase()?"\n":"")),1===d||2===d)f+=$text(a)+("block"===$style.get(a,"display")||"br"===a.tagName.toLowerCase()?"\n":"");return f})},$className:{add:function(a,b){return d(a,function(a){if(""===a.className)a.className=b;else{var f=a.className,d=[];$each(b.split(r),function(a,b){RegExp("\\b("+b+")\\b").test(f)||d.push(" "+b)});a.className+=d.join("")}return a})},set:function(a,b){return d(a,function(a){a.className=b;return a})},has:function(a,b){return RegExp("\\b("+b.split(r).join("|")+")\\b").test(a.className)},remove:function(a,b){return d(a,function(a){a.className=b?$string.trim(a.className.replace(RegExp("\\b("+b.split(r).join("|")+")\\b","g"),"").split(r).join(" ")):"";return a})}},$hide:function(a,b,c){B(a,"hide",b,c)},$show:function(a,b,c){B(a,"show",b,c)},$toggle:function(a,b,c){return d(a,function(a){"none"===$style.get(a,"display")?$show(a,b,c):$hide(a,b,c)})},$animate:j,$fadeout:function(a,b,c){return d(a,function(a){$animate(a,{opacity:{from:1,to:0}},b||500,c)})},$fadein:function(a,b,c){return d(a,function(a){$animate(a,{opacity:{from:0,to:1}},b||500,c)})},$cookie:{get:function(a){for(var b=e.cookie.split("; "),c=0,d=b.length,h;c<d;c++)if(h=b[c].split("="),h[0]===a)return a=decodeURIComponent(h[1]),$json.isJSON(a)?$json.decode(a):a.toString();return null},set:function(a,b,c){if("object"===typeof a)return c=b,$each(a,function(a,b){$cookie.set(a,b,c)});var d=new Date;d.setTime(d.getTime());c=c?";expires="+(new Date(d.getTime()+864E5*c)).toGMTString():"";b="object"===typeof b?$json.encode(b):b;return e.cookie=a+"="+$url(b)+c+";path=/"},remove:function(){$each(arguments,function(a,b){$cookie.set(b,"",-1)});return!0}},$json:V,$ajax:function(a,b){"object"===typeof a&&(b=a,a=l);var b=b||{},c=XMLHttpRequest?new XMLHttpRequest:new ActiveXObject("Microsoft.XMLHTTP"),d=[];c.open(b.type||"POST",a||b.url,!0);c.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");b.header&&$each(b.header,function(a,b){c.setRequestHeader(a,b)});b.data&&$each(b.data,function(a,b){d.push(C(a,b))});c.send(d.join("&").replace(/%20/g,"+"));c.onreadystatechange=function(){4===c.readyState&&200===c.status&&b.success?(data=c.responseText,b.success(""!==data&&$json.isJSON(data)?$json.decode(data):data)):b.error&&b.error.call()}},$loadscript:function(a){return $prepend(e.head||e.getElementsByTagName("head")[0]||e.documentElement,$new("script",{type:"text/javascript",async:!0,src:a}))},$url:function(a){return encodeURIComponent(a)},$rand:function(a,b){return Math.floor(Math.random()*(b-a+1)+a)},$browser:t},w;for(w in k)n[w]=k[w];k.version="1.0";n.Qatrix=k;$ready(function(){e.querySelectorAll||(k.Qselector=$append(e.body,$new("style")));n.localStorage||(k.storage=$append(e.body,$new("link",{style:{behavior:"url(#default#userData)"}})))})})(window,document);