From da27624859160e22c745f7f1ecc8ed4b5d2fae92 Mon Sep 17 00:00:00 2001
From: Commander-lol <ljcapitanio@gmail.com>
Date: Wed, 11 Mar 2015 22:23:04 +0000
Subject: [PATCH] Added JSON func object

---
 js/tinyDOM.js         | 13 +++++++++++++
 js/tinyDOM.min.js     |  3 +--
 js/tinyDOM.min.js.map |  2 +-
 3 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/js/tinyDOM.js b/js/tinyDOM.js
index dfc493e..d22719a 100644
--- a/js/tinyDOM.js
+++ b/js/tinyDOM.js
@@ -210,6 +210,19 @@
         target.dispatchEvent(new CustomEvent(eventName, data, bubbles, cancelable));
     };
 
+    tinyDOM.json = {
+        keys: function(json) {
+            var kys = [],
+                indx;
+            for(indx in json){
+                if(json.hasOwnProperty(indx)){
+                    kys.push(indx);
+                }
+            }
+            return kys;
+        }
+    };
+
 	tinyDOM.ajax = function (options) {
 		var req = new XMLHttpRequest(),
             _this = this,
diff --git a/js/tinyDOM.min.js b/js/tinyDOM.min.js
index 7fd1fbc..4c22ac1 100644
--- a/js/tinyDOM.min.js
+++ b/js/tinyDOM.min.js
@@ -1,2 +1 @@
-!function(){"use strict";var e,t,n;Element&&!Element.prototype.matches&&(e=Element.prototype,e.matches=e.matchesSelector||e.mozMatchesSelector||e.msMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector),t=function(e){var t,n,s;if(null===e||"undefined"==typeof e)this.length=0;else if("string"==typeof e)for(t=document.querySelectorAll(e),this.length=t.length,n=0;n<t.length;n++)s=t.item(n),this[n]=s;else if(e.length)for(n=0;n<e.length;n++)s=e[n],this[n]=s;else this[0]=e,this.length=1;return this},n=function(e){return new t(e)},n.fn=t.prototype={each:function(e){for(var t=this.length;t--;)e(t,this[t],this);return this},on:function(e,t,n){return"string"==typeof t?this.each(function(s,r){r.addEventListener(e,function(e){var s=e.target,i=!1;do s&&s.matches(t)?(n.call(s,e),i=!0):(s=s.parentNode,s&&s.matches&&s!==r||(i=!0));while(i!==!0)})}):(n=t,this.each(function(t,s){s.addEventListener(e,n)})),this},first:function(){return"undefined"!=typeof this[0]?n(this[0]):null},parent:function(e){var t=this[0].parentNode,s=!0;if(n.exists(e)){for(;null!==t&&t!==document;){if(t.matches(e)){s=!1;break}t=t.parentNode}t=s?null:t}return n(t)},children:function(){var e,t=this[0].childNodes,s=[];for(e=0;e<t.length;e++)n.isElement(t[e])&&s.push(t[e]);return n(s)},data:function(e,t){return"undefined"!=typeof t?(this.each(function(n,s){s.setAttribute("data-"+e,t)}),this):this[0].getAttribute("data-"+e)},attr:function(e,t){return"undefined"!=typeof t?(this.each(function(n,s){s.setAttribute(e,t)}),this):this[0].getAttribute(e)},"class":function(e,t){return this.each(n.exists(t)?function(n,s){s.classList.toggle(e,t)}:function(t,n){n.classList.toggle(e)}),this},trigger:function(e,t,s,r){s=n.exists(s)?s:!0,r=n.exists(r)?r:!0;var i=new CustomEvent(e,t,s,r);return this.each(function(e,t){t.dispatchEvent(i)}),this}},n.isElement=function(e){var t=!1;try{t=e instanceof HTMLElement}catch(n){t=e.nodeType&&1===e.nodeType}return t},n.isJson=function(e){try{return JSON.parse(e),null!==e&&"undefined"!=typeof e}catch(t){return!1}},n.exists=function(e){return null!==e&&"undefined"!=typeof e},n.merge=function(e,t){if(this.exists(e)&&this.exists(t)){var n;for(n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e}return null},n.byID=function(e){return n(document.getElementById(e))},n.triggerOn=function(e,t,s,r,i){r=n.exists(r)?r:!0,i=n.exists(i)?i:!0,e.dispatchEvent(new CustomEvent(t,s,r,i))},n.ajax=function(e){var t,n,s=new XMLHttpRequest,r={method:"GET",url:"",async:!0,user:null,password:null,responseType:"text",data:null,headers:[],callbacks:{}},i=function(e){return function(t){e(t.currentTarget.response,t)}};if(this.merge(r,e),s.responseType=r.responseType,this.exists(r.callbacks))for(t in r.callbacks)r.callbacks.hasOwnProperty(t)&&s.addEventListener(t,i(r.callbacks[t]));for(s.open(r.method,r.url,r.async,r.user,r.password),n=0;n<r.headers.length;n++)s.setRequestHeader(r.headers[n].header,r.headers[n].value);return s.send(r.data),s},window.μ||(window.μ=n),window.mu||(window.mu=n)}();
-//# sourceMappingURL=tinyDOM.min.js.map
+!function(){"use strict";var t,e,n;Element&&!Element.prototype.matches&&(t=Element.prototype,t.matches=t.matchesSelector||t.mozMatchesSelector||t.msMatchesSelector||t.oMatchesSelector||t.webkitMatchesSelector),e=function(t){var e,n,r;if(null===t||"undefined"==typeof t)this.length=0;else if("string"==typeof t)for(e=document.querySelectorAll(t),this.length=e.length,n=0;n<e.length;n++)r=e.item(n),this[n]=r;else if(t.length)for(n=0;n<t.length;n++)r=t[n],this[n]=r;else this[0]=t,this.length=1;return this},n=function(t){return new e(t)},n.fn=e.prototype={each:function(t){for(var e=this.length;e--;)t(e,this[e],this);return this},on:function(t,e,n){return"string"==typeof e?this.each(function(r,s){s.addEventListener(t,function(t){var r=t.target,i=!1;do r&&r.matches(e)?(n.call(r,t),i=!0):(r=r.parentNode,r&&r.matches&&r!==s||(i=!0));while(i!==!0)})}):(n=e,this.each(function(e,r){r.addEventListener(t,n)})),this},first:function(){return"undefined"!=typeof this[0]?n(this[0]):null},parent:function(t){var e=this[0].parentNode,r=!0;if(n.exists(t)){for(;null!==e&&e!==document;){if(e.matches(t)){r=!1;break}e=e.parentNode}e=r?null:e}return n(e)},children:function(){var t,e=this[0].childNodes,r=[];for(t=0;t<e.length;t++)n.isElement(e[t])&&r.push(e[t]);return n(r)},data:function(t,e){return"undefined"!=typeof e?(this.each(function(n,r){r.setAttribute("data-"+t,e)}),this):this[0].getAttribute("data-"+t)},attr:function(t,e){return"undefined"!=typeof e?(this.each(function(n,r){r.setAttribute(t,e)}),this):this[0].getAttribute(t)},"class":function(t,e){return this.each(n.exists(e)?function(n,r){r.classList.toggle(t,e)}:function(e,n){n.classList.toggle(t)}),this},trigger:function(t,e,r,s){r=n.exists(r)?r:!0,s=n.exists(s)?s:!0;var i=new CustomEvent(t,e,r,s);return this.each(function(t,e){e.dispatchEvent(i)}),this}},n.isElement=function(t){var e=!1;try{e=t instanceof HTMLElement}catch(n){e=t.nodeType&&1===t.nodeType}return e},n.isJson=function(t){try{return JSON.parse(t),null!==t&&"undefined"!=typeof t}catch(e){return!1}},n.exists=function(t){return null!==t&&"undefined"!=typeof t},n.merge=function(t,e){if(this.exists(t)&&this.exists(e)){var n;for(n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}return null},n.byID=function(t){return n(document.getElementById(t))},n.triggerOn=function(t,e,r,s,i){s=n.exists(s)?s:!0,i=n.exists(i)?i:!0,t.dispatchEvent(new CustomEvent(e,r,s,i))},n.json={keys:function(t){var e,n=[];for(e in t)t.hasOwnProperty(e)&&n.push(e);return n}},n.ajax=function(t){var e,n,r=new XMLHttpRequest,s={method:"GET",url:"",async:!0,user:null,password:null,responseType:"text",data:null,headers:[],callbacks:{}},i=function(t){return function(e){t(e.currentTarget.response,e)}};if(this.merge(s,t),r.responseType=s.responseType,this.exists(s.callbacks))for(e in s.callbacks)s.callbacks.hasOwnProperty(e)&&r.addEventListener(e,i(s.callbacks[e]));for(r.open(s.method,s.url,s.async,s.user,s.password),n=0;n<s.headers.length;n++)r.setRequestHeader(s.headers[n].header,s.headers[n].value);return r.send(s.data),r},window.μ||(window.μ=n),window.mu||(window.mu=n)}();
diff --git a/js/tinyDOM.min.js.map b/js/tinyDOM.min.js.map
index 9daeb31..7d9e863 100644
--- a/js/tinyDOM.min.js.map
+++ b/js/tinyDOM.min.js.map
@@ -1 +1 @@
-{"version":3,"sources":["tinyDOM.js"],"names":["proto","TinyDOMFunction","tinyDOM","Element","prototype","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","selector","elements","i","e","this","length","document","querySelectorAll","item","fn","each","l","on","ev","del","addEventListener","firedevent","target","matched","call","parentNode","first","parent","stn","exists","children","n","childNodes","a","isElement","push","data","key","value","setAttribute","getAttribute","attr","class","classname","addremove","classList","toggle","trigger","eventName","bubbles","cancelable","event","CustomEvent","dispatchEvent","node","is","HTMLElement","nodeType","isJson","obj","JSON","parse","merge","json1","json2","prop","hasOwnProperty","byID","id","getElementById","triggerOn","ajax","options","req","XMLHttpRequest","params","method","url","async","user","password","responseType","headers","callbacks","makeListener","callback","currentTarget","response","open","setRequestHeader","header","send","window","μ","mu"],"mappings":"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"}
\ No newline at end of file
+{"version":3,"sources":["tinyDOM.js"],"names":["proto","TinyDOMFunction","tinyDOM","Element","prototype","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","selector","elements","i","e","this","length","document","querySelectorAll","item","fn","each","l","on","ev","del","addEventListener","firedevent","target","matched","call","parentNode","first","parent","stn","exists","children","n","childNodes","a","isElement","push","data","key","value","setAttribute","getAttribute","attr","class","classname","addremove","classList","toggle","trigger","eventName","bubbles","cancelable","event","CustomEvent","dispatchEvent","node","is","HTMLElement","nodeType","isJson","obj","JSON","parse","merge","json1","json2","prop","hasOwnProperty","byID","id","getElementById","triggerOn","json","keys","indx","kys","ajax","options","req","XMLHttpRequest","params","method","url","async","user","password","responseType","headers","callbacks","makeListener","callback","currentTarget","response","open","setRequestHeader","header","send","window","μ","mu"],"mappings":"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"}
\ No newline at end of file
-- 
GitLab