/* Qatrix v0.9.9 / http://qatrix.com / Copyright (c) 2012, Angel Lai - MIT license. */

(function(h,k,m){var n='0.9.9',rbline=/(^\n+)|(\n+$)/g,rbrace=/^(?:\{.*\}|\[.*\])$/,rcamelCase=/-([a-z])/ig,rdigit=/\d/,rline=/\r\n/g,rnum=/[\-\+0-9\.]/ig,rspace=/\s+/,rtrim=/(^\s*)|(\s*$)/g,rvalidchars=/^[\],:{}\s]*$/,rvalidescape=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,rvalidtokens=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,rvalidbraces=/(?:^|:|,)(?:\s*\[)+/g,readyList=[],ready=function(){$each(readyList,function(i,a){a()});k.removeEventListener('DOMContentLoaded',ready,false)},nodeManip=function(a,b){var c=typeof b;if(c==='string'){var d=a&&a.ownerDocument||k,fragment=d.createDocumentFragment(),div=$new('div'),ret=[];div.innerHTML=b;while(div.childNodes[0]!=null){fragment.appendChild(div.childNodes[0])}b=fragment;div=null}if(c==='number'){b+=''}return b},mapcall=function(b,c){if(c&&b.length>0){$each(b,function(i,a){c(a)})}return b},Qatrix={$:function(a){return k.getElementById(a)},$each:function(a,b){var i=0,length=a.length,name;if(length){for(;i<length;i++){b.call(a[i],i,a[i])}}else{for(name in a){b.call(a[name],name,a[name])}}},$id:function(b,c){var d=[],elem;if(typeof b==='string'){elem=$(b);if(elem!==null&&c){c(elem)}return elem}$each(b,function(i,a){elem=$(a);if(elem!==null){d.push(elem)}});return mapcall(d,c)},$dom:function(a,b){if(b){a.length?mapcall(a,b):b(a)}return a},$tag:function(a,b,c){return mapcall(a.getElementsByTagName(b),c)},$class:k.getElementsByClassName?function(a,b,c){return mapcall(a.getElementsByClassName(b),c)}:function(b,c,d){var e=[],rclass=new RegExp('\\b'+c+'\\b');$tag(b,'*',function(a){if(rclass.test(a.className)){e.push(a)}});return mapcall(e,d)},$select:k.querySelectorAll?function(a,b){return mapcall(k.querySelectorAll(a),b)}:function(b,c){var d=Qatrix.Qselector.styleSheet,match=[];d.addRule(b,'q:a');$tag(k,'*',function(a){if(a.currentStyle.q==='a'){match.push(a)}});d.cssText='';return mapcall(match,c)},$new:function(c,d){var f=k.createElement(c);if(d){try{$each(d,function(a,b){switch(a){case'css':case'style':$css.set(f,b);break;case'innerHTML':case'html':$html(f,b);break;case'className':case'class':$className.set(f,b);break;case'text':$text(f,b);break;default:$attr.set(f,a,b);break}});return f}catch(e){}finally{f=null}}return f},$string:{camelCase:function(c){return c.replace('-ms-','ms-').replace(rcamelCase,function(a,b){return(b+'').toUpperCase()})},replace:function(a,b){for(var c in b){a=a.replace(new 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(rtrim,'')}},$attr:{get:function(a,b){return a.getAttribute(b)},set:function(a,b,c){return a.setAttribute(b,c)},remove:function(a,b){return a.removeAttribute(b)}},$data:{get:function(a,b){var c=$attr.get(a,'data-'+b);return c==="true"?true:c==="false"?false:c==="null"?'':c===null?'':c===''?'':!isNaN(parseFloat(c))&&isFinite(c)?+c:rbrace.test(c)?$json.decode(c):c},set:function(c,d,e){e=typeof e==='object'?$json.encode(e):e;typeof d==='object'?$each(d,function(a,b){$attr.set(c,'data-'+a,b)}):$attr.set(c,'data-'+d,e);return c},remove:function(a,b){return $attr.remove(a,'data-'+b)}},$cache:{data:{},get:function(a){var b=$cache.data[a];return b||typeof b==='number'?b:null},set:function(a,b){$cache.data[a]=b;return b},inc:function(a){var b=$cache.data[a];return typeof b==='number'?$cache.data[a]++:b},dec:function(a){var b=$cache.data[a];return typeof b==='number'?$cache.data[a]--:b},remove:function(a){delete $cache.data[a];return true},flush:function(){$cache.data={};return true}},$storage:h.localStorage?{set:function(a,b){localStorage[a]=typeof b==='object'?$json.encode(b):b},get:function(a){var b=localStorage[a];if($json.isJSON(b)){return $json.decode(b)}return b||''},remove:function(a){localStorage.removeItem(a);return true}}:{set:function(a,b){b=typeof b==='object'?$json.encode(b):b;$data.set(Qatrix.storage,a,b);Qatrix.storage.save('Qstorage')},get:function(a){Qatrix.storage.load('Qstorage');return $data.get(Qatrix.storage,a)||''},remove:function(a){Qatrix.storage.load('Qstorage');$data.remove(Qatrix.storage,a);return true}},$event:{add:function(c,d,e){if(typeof d==='object'){$each(d,function(a,b){$event.add(c,a,b)});return c}if(c.nodeType===3||c.nodeType===8||!d||!e){return false}if(c.addEventListener){if(d==='mouseenter'||d==='mouseleave'){d=d==='mouseenter'?'mouseover':'mouseout';e=$event.handler.mouseenter(e)}c.addEventListener(d,e,false)}else{if(c.getAttribute){var f=e.toString();if($data.get(c,'event-'+d+'-'+f)){return false}$data.set(c,'event-'+d+'-'+f,true)}c.attachEvent('on'+d,e)}return c},remove:k.removeEventListener?function(a,b,c){a.removeEventListener(b,c,false);return a}:function(a,b,c){a.detachEvent('on'+b,c);if(a.removeAttribute){$attr.remove(a,'event-'+b+'-'+c.toString())}return a},handler:{mouseenter:function(c){return function(a){var b=a.relatedTarget;if(this===b){return}while(b&&b!==this){b=b.parentNode}if(b===this){return}c.call(this,a)}}},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||k}},$clear:function(a){if(a){clearTimeout(a);clearInterval(a)}return null},$ready:function(a){if(k.readyState==='complete'){return setTimeout(a,1)}if(k.addEventListener){readyList.push(a);k.addEventListener('DOMContentLoaded',ready,false);return}var b=function(){try{k.documentElement.doScroll('left')}catch(e){setTimeout(b,1);return}a()};b()},$css:{get:function(a,b){return $style.get(a,b)},set:function(c,d,e){typeof d==='object'?$each(d,function(a,b){$style.set(c,$string.camelCase(a),$css.fix(a,b))}):$style.set(c,$string.camelCase(d),$css.fix(d,e));return c},number:{'fontWeight':true,'lineHeight':true,'opacity':true,"zIndex":true},unit:function(a,b){if($css.number[a]){return''}var c=b.toString().replace(rnum,'');return c===''?'px':c},fix:function(a,b){if(typeof b==='number'&&!$css.number[a]){b+='px'}return b===null&&isNaN(b)?false:b}},$style:{get:h.getComputedStyle?function(a,b){if(a!==null){return k.defaultView.getComputedStyle(a,null).getPropertyValue(b)}return false}:function(a,b){if(a!==null){if(b==='width'&&a.currentStyle['width']==='auto'){return a.offsetWidth}if(b==='height'&&a.currentStyle['height']==='auto'){return a.offsetHeight}return a.currentStyle[$string.camelCase(b)]}return false},set:k.documentElement.style.opacity===m?function(a,b,c){a.style[b]=c;return true}:function(a,b,c){if(!a.currentStyle||!a.currentStyle.hasLayout){a.style.zoom=1}if(b==='opacity'){a.style.filter='alpha(opacity='+c*100+')'}else{a.style[b]=c}return true}},$pos:function(a,x,y){$style.set(a,'left',x+'px');$style.set(a,'top',y+'px');return a},$offset:function(a){var b=k.body,doc_elem=k.documentElement,box=a.getBoundingClientRect();return{top:box.top+(h.scrollY||b.parentNode.scrollTop||a.scrollTop)-(doc_elem.clientTop||b.clientTop||0),left:box.left+(h.scrollX||b.parentNode.scrollLeft||a.scrollLeft)-(doc_elem.clientLeft||b.clientLeft||0),width:a.offsetWidth,height:a.offsetHeight}},$append:function(a,b){return a.appendChild(nodeManip(a,b))},$prepend:function(a,b){return a.firstChild?a.insertBefore(nodeManip(a,b),a.firstChild):a.appendChild(nodeManip(a,b))},$before:function(a,b){return a.parentNode.insertBefore(nodeManip(a,b),a)},$after:function(a,b){return a.nextSibling?a.parentNode.insertBefore(nodeManip(a,b),a.nextSibling):a.parentNode.appendChild(nodeManip(a,b))},$remove:function(a){return a!==null&&a.parentNode?a.parentNode.removeChild(a):a},$empty:function(a){a.innerHTML='';return a},$html:function(a,b){if(b===m){return a.nodeType===1?a.innerHTML:null}try{a.innerHTML=b}catch(e){$append($empty(a),b)}return a},$text:function(a,b){if(b===m){var c='',textContent=a.textContent,nodeType;if((textContent||a.innerText)===a.innerHTML){c=textContent?$string.trim(a.textContent.replace(rbline,'')):a.innerText.replace(rline,'')}else{for(a=a.firstChild;a;a=a.nextSibling){nodeType=a.nodeType;if(nodeType===3&&$string.trim(a.nodeValue)!==''){c+=a.nodeValue.replace(rbline,'')+(a.nextSibling&&a.nextSibling.tagName.toLowerCase()!=='br'?"\n":'')}if(nodeType===1||nodeType===2){c+=$text(a)+($style.get(a,'display')==='block'||a.tagName.toLowerCase()==='br'?"\n":'')}}}return c}$empty(a);a.appendChild(k.createTextNode(b));return a},$className:{add:function(b,c){if(b.className===''){b.className=c}else{var d=b.className,nclass=[];$each(c.split(rspace),function(i,a){if(!new RegExp('\\b('+a+')\\b').test(d)){nclass.push(' '+a)}});b.className+=nclass.join('')}return b},set:function(a,b){a.className=b;return a},has:function(a,b){return new RegExp('\\b('+b.split(rspace).join('|')+')\\b').test(a.className)},remove:function(a,b){a.className=b?$string.trim(a.className.replace(new RegExp('\\b('+b.split(rspace).join('|')+')\\b','g'),'').split(rspace).join(' ')):'';return a}},$hide:function(c){$each(arguments,function(i,b){typeof b==='string'?$(b).style.display='none':typeof b==='object'&&b.length?$each(b,function(i,a){a.style.display='none'}):b.style.display='none'})},$show:function(c){$each(arguments,function(i,b){typeof b==='string'?$(b).style.display='block':typeof b==='object'&&b.length?$each(b,function(i,a){a.style.display='block'}):b.style.display='block'})},$animate:(function(){var a=k.documentElement.style;return(a.webkitTransition!==m||a.MozTransition!==m||a.OTransition!==m||a.MsTransition!==m||a.transition!==m)}())?(function(){var g=k.documentElement.style,prefix_name=g.webkitTransition!==m?'Webkit':g.MozTransition!==m?'Moz':g.OTransition!==m?'O':g.MsTransition!==m?'ms':'',transition_name=prefix_name+'Transition',transform_name=prefix_name+'Transform';return function(b,c,d,e){var f=[],css_name=[],unit=[],css_style=[],g=b.style,css,offset;for(css in c){css_name[css]=$string.camelCase(css);if(c[css].from!==m){f[css]=!$css.number[css]?parseInt(c[css].to):c[css].to;unit[css]=$css.unit(css,c[css].to);$style.set(b,css_name[css],parseInt(c[css].from)+unit[css])}else{f[css]=!$css.number[css]?parseInt(c[css]):c[css];unit[css]=$css.unit(css,c[css]);$style.set(b,css_name[css],$style.get(b,css_name[css]))}if(css==='left'||css==='top'){offset=$offset(b);$style.set(b,css,(css==='left'?offset.left:offset.top)+'px')}css_style.push(css)}setTimeout(function(){g[transition_name]='all '+d+'ms';if(c['left']||c['top']){g[transform_name]='translateZ(0)'}$each(css_style,function(i,a){g[css_name[a]]=f[a]+unit[a]})},15);setTimeout(function(){g[transition_name]=g[transform_name]='';if(e){e(b)}},d||'300');return b}})():function(a,b,c,d){var e=0,i=0,j=0,length=0,p=30,css_to_value=[],css_from_value=[],css_name=[],css_unit=[],css_style=[],property_value,css,offset,timer;c=c||'300';for(css in b){css_name.push(css==='opacity'?'filter':$string.camelCase(css));if(b[css].from!==m){property_value=b[css].to;css_from_value.push(!$css.number[css]?parseInt(b[css].from):b[css].from);$style.set(a,css_name[i],css_from_value[i]+$css.unit(css,property_value))}else{property_value=b[css];if(css==='left'||css==='top'){offset=$offset(a);css_from_value.push(css==='left'?offset.left:offset.top)}else{css_from_value.push(parseInt($style.get(a,$string.camelCase(css))))}}css_to_value.push(!$css.number[css]?parseInt(property_value):property_value);css_unit.push($css.unit(css,property_value));i++;length++}for(j=0;j<p;j++){css_style[j]=[];for(i=0;i<length;i++){css_style[j][css_name[i]]=css_name[i]==='filter'?'alpha(opacity='+(css_from_value[i]+(css_to_value[i]-css_from_value[i])/p*j)*100+')':(css_from_value[i]+(css_to_value[i]-css_from_value[i])/p*j)+css_unit[i]}}for(;i<p;i++){timer=setTimeout(function(){for(i=0;i<length;i++){a.style[css_name[i]]=css_style[e][css_name[i]]}e++},(c/p)*i)}setTimeout(function(){for(i=0;i<length;i++){a.style[css_name[i]]=css_style[e][css_name[i]]}if(d){d(a)}},c);return a},$fadeout:function(a,b,c){return $animate(a,{'opacity':{from:1,to:0}},b||'500',c)},$fadein:function(a,b,c){return $animate(a,{'opacity':{from:0,to:1}},b||'500',c)},$cookie:{get:function(a){var b=k.cookie.split('; '),i=0,l=b.length,temp,value;for(;i<l;i++){temp=b[i].split('=');if(temp[0]===a){value=decodeURIComponent(temp[1]);return $json.isJSON(value)?$json.decode(value):value.toString()}}return null},set:function(a,b,c){b=typeof b==='object'?$json.encode(b):b;var d=new Date();d.setTime(d.getTime());c=c?';expires='+new Date(d.getTime()+c*86400000).toGMTString():'';return k.cookie=a+'='+$url(b)+c+';path=/'},remove:function(){$each(arguments,function(i,a){$cookie.set(a,'',-1)});return true}},$json:{decode:h.JSON?function(a){return $json.isJSON(a)?JSON.parse($string.trim(a)):false}:function(a){return $json.isJSON(a)?eval('('+$string.trim(a)+')'):false},encode:h.JSON?function(a){return JSON.stringify(a)}:function(e){function stringify(c){var d=[],i,type,value,rvalue;for(i in c){value=c[i];type=typeof value;if(type==='undefined'){return}if(type!=='function'){switch(type){case'object':rvalue=value===null?value:value.getDay?'"'+(1e3-~value.getUTCMonth()*10+value.toUTCString()+1e3+value/1).replace(/1(..).*?(\d\d)\D+(\d+).(\S+).*(...)/,'$3-$1-$2T$4.$5Z')+'"':value.length?'['+(function(){var b=[];$each(value,function(i,a){b.push((typeof a==='string'?'"'+$string.slashes(a)+'"':a))});return b.join(',')})()+']':$json.encode(value);break;case'number':rvalue=!isFinite(value)?null:value;break;case'boolean':case'null':rvalue=value;break;case'string':rvalue='"'+$string.slashes(value)+'"';break}d.push('"'+i+'"'+':'+rvalue)}}return d.join(',')}return'{'+stringify(e)+'}'},isJSON:function(a){return typeof a==='string'&&$string.trim(a)!==''?rvalidchars.test(a.replace(rvalidescape,'@').replace(rvalidtokens,']').replace(rvalidbraces,'')):false}},$ajax:function(c,d){if(typeof c==='object'){d=c;c=m}d=d||{};var e=XMLHttpRequest?new XMLHttpRequest():new ActiveXObject('Microsoft.XMLHTTP'),param=[],response;e.open(d.type||'POST',c||d.url,true);e.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');if(d.header){$each(d.header,function(a,b){e.setRequestHeader(a,b)})}if(d.data){$each(d.data,function(a,b){param.push($url(a)+'='+$url(b))})}e.send(param.join('&').replace(/%20/g,'+'));e.onreadystatechange=function(){if(e.readyState===4&&e.status===200&&d.success){data=e.responseText;d.success(data!==''&&$json.isJSON(data)?$json.decode(data):data)}else{if(d.error){d.error.call()}}}},$loadscript:function(a){return $prepend(k.getElementsByTagName('head')[0]||k.head||k.documentElement,$new('script',{'type':'text/javascript','async':true,'src':a}))},$url:function(a){return encodeURIComponent(a)},$rand:function(a,b){return Math.floor(Math.random()*(b-a+1)+a)},$browser:(function(){var a=navigator.userAgent.toLowerCase(),browser={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/},key;for(key in browser){browser[key]=browser[key].test(a)}return browser}())};for(var o in Qatrix){h[o]=Qatrix[o]}Qatrix.version=n;h.Qatrix=Qatrix;$ready(function(){if(!k.querySelectorAll){Qatrix.Qselector=$append(k.body,$new('style'))}if(!h.localStorage){Qatrix.storage=$append(k.body,$new('link',{'style':{'behavior':'url(#default#userData)'}}))}})})(window,document);