var eQuery={classname:"element-query",datasize:"data-eq",datauid:"data-eq-uid",uid:0,storage:{index:[],data:{}},resizeEvent:null,consoleTimeStamp:function(){return},requestAnimationFrame:function(n){window.requestAnimationFrame?window.requestAnimationFrame(n):n()},getUniqueId:function(){return eQuery.uid++,"uid"+eQuery.uid},convertWidth:function(n){for(var e=parseInt(n),r=50,u=["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"],f="",i,t=0;t<=e;t+=r){if(i=Math.floor(t/(r*2)),i>u.length-1)break;f+=u[i]}return f},read:function(n){eQuery.storage.data[n].width=eQuery.storage.data[n].dom.offsetWidth},write:function(n){eQuery.storage.data[n].dom.setAttribute(eQuery.datasize,eQuery.convertWidth(eQuery.storage.data[n].width));eQuery.storage.data[n].dom.dispatchEvent(eQuery.resizeEvent)},update:function(n){var t=n.getAttribute(eQuery.datauid);eQuery.read(t);eQuery.write(t);eQuery.consoleTimeStamp("elementQuery: Update")},updateAsync:function(n){eQuery.requestAnimationFrame(function(){eQuery.update(n)});eQuery.consoleTimeStamp("elementQuery: Update Async")},updateAll:function(){for(var n=eQuery.storage.index.length-1;n>=0;n--)eQuery.read(eQuery.storage.index[n]);for(n=eQuery.storage.index.length-1;n>=0;n--)eQuery.write(eQuery.storage.index[n]);eQuery.consoleTimeStamp("elementQuery: Update All")},updateAllAsync:function(){eQuery.requestAnimationFrame(eQuery.updateAll);eQuery.consoleTimeStamp("elementQuery: Update All Async")},register:function(n){if(!n.hasAttribute(eQuery.datauid)){var t=eQuery.getUniqueId();n.setAttribute(eQuery.datauid,t);eQuery.storage.index.push(t);eQuery.storage.data[t]={uid:t,dom:n,width:0};n.elementQueryUpdate=function(){eQuery.update(this)};n.elementQueryUpdateAsync=function(){eQuery.updateAsync(this)}}},init:function(n){if(eQuery.consoleTimeStamp("elementQuery: Init"),n instanceof HTMLCollection||n instanceof NodeList)for(var t=0;t<n.length;t++)eQuery.register(n[t]);else eQuery.register(n);eQuery.updateAll()}};window.elementQuery={init:eQuery.init,update:eQuery.updateAll,updateAsync:eQuery.updateAllAsync};eQuery.resizeEvent=document.createEvent("Event");eQuery.resizeEvent.initEvent("elementQueryResize",!0,!0);document.addEventListener("DOMContentLoaded",function(){eQuery.init(document.getElementsByClassName(eQuery.classname))});window.onresize=function(){eQuery.updateAllAsync()}