pavone@0: function each(container, fun) pavone@0: { pavone@0: if (container instanceof Array) { pavone@0: for (var i = 0; i < container.length; i++) { pavone@0: fun(i, conatiner[i]); pavone@0: } pavone@0: } else { pavone@0: for (var i in container) { pavone@0: if (container.hasOwnProperty(i)) { pavone@0: fun(i, container[i]); pavone@0: } pavone@0: } pavone@0: } pavone@0: } pavone@0: pavone@0: function q(query) pavone@0: { pavone@0: return document.querySelector(query); pavone@0: } pavone@0: function qall(query) pavone@0: { pavone@0: return document.querySelectorAll(query); pavone@0: } pavone@0: pavone@0: function hide(el) pavone@0: { pavone@0: el.style.display = 'none'; pavone@0: } pavone@0: pavone@0: function show(el, dtype) pavone@0: { pavone@0: if (dtype === undefined) { pavone@0: dtype = 'block'; pavone@0: } pavone@9: el.style.display = dtype; pavone@0: } pavone@0: pavone@0: function onReady(fun) pavone@0: { pavone@0: if (document.readyState == 'complete') { pavone@0: fun(); pavone@0: } else { pavone@0: document.onreadystatechange = function() { pavone@0: if (document.readyState == 'complete') { pavone@0: fun(); pavone@0: document.onreadystatechange = null; pavone@0: } pavone@0: } pavone@0: } pavone@0: } pavone@0: pavone@0: function addClass(el, classname) pavone@0: { pavone@0: var classes = el.className.split(' '); pavone@0: if (classes.indexOf(classname) == -1) { pavone@0: classes.push(classname); pavone@0: el.className = classes.join(' '); pavone@0: } pavone@0: } pavone@0: pavone@0: function removeClass(el, classname) pavone@0: { pavone@0: var classes = el.className.split(' '); pavone@0: var idx = classes.indexOf(classname); pavone@0: if (idx > -1) { pavone@0: classes.splice(idx, 1); pavone@0: el.className = classes.join(' '); pavone@0: } pavone@0: } pavone@0: pavone@9: function ajax(method, url, data, onSuccess, onFail, onOthers) pavone@9: { pavone@9: var req; pavone@9: try { pavone@9: req = new XMLHttpRequest(); pavone@9: } catch (e) { pavone@9: req = new ActiveXObject("Microsoft.XMLHTTP"); pavone@9: } pavone@9: req.onreadystatechange = function() { pavone@9: if (req.readyState == 4) { pavone@9: if ((req.status >= 200 && req.status <= 299) || req.status == 0) { pavone@9: onSuccess(req); pavone@9: } else if(onFail) { pavone@9: onFail(req); pavone@9: } else { pavone@9: console.log('request failed:', req); pavone@9: } pavone@9: } else if(onOthers) { pavone@9: onOthers(req); pavone@9: } pavone@9: } pavone@9: req.open(method, url); pavone@9: if (data && 'mime' in data) { pavone@9: req.setRequestHeader('Content-Type', data.mime); pavone@9: req.send(data); pavone@9: } else { pavone@9: req.send(data); pavone@9: } pavone@9: } pavone@9: pavone@9: function get(url, onSuccess, onFail, onOthers) pavone@9: { pavone@9: ajax('GET', url, undefined, onSuccess, onFail, onOthers); pavone@9: } pavone@9: pavone@9: function post(url, data, onSuccess, onFail, onOthers) pavone@9: { pavone@9: ajax('POST', url, data, onSuccess, onFail, onOthers); pavone@9: } pavone@9: