/*
* jLazy
*
* A tiny 'framework' for js development under 'lazy' purpose.
*
* Developed and maintained by Tie Li.
*
* i@litie.name
*
*/
//prototype of node object
function $o(node){
//s() for set attribute
node.s = function(key, value){
node.setAttribute(key, value);
}
//a() for append child
node.a = function(child){
node.appendChild(child);
}
//i() for insert before
node.i = function(inserted, reference){
node.insertBefore(inserted, reference);
}
//ra() for remove all child
node.ra = function(){
while(node.hasChildNodes()){
node.removeChild(node.childNodes[0]);
}
}
//rc for remove child
node.rc = function(child){
node.removeChild(child);
}
//rcs for remove node itself
node.rcs = function(){
node.parentNode.removeChild(node);
}
//tcbt() for get toppest level of childs by tag name
node.tcbt = function(tagName){
var arr = new Array();
for(var i=0; i<node.childNodes.length; i++){
if(csic(node.childNodes[i].tagName, tagName)){
//arr.push(node.childNodes[i]);
arr.push($o(node.childNodes[i]));
}
}
return arr;
}
//cbc for get childs by class name
node.cbc = function(className){
var arr = new Array();
for(var i=0; i<node.getElementsByClassName(className).length; i++){
arr.push($o(node.getElementsByClassName(className)[i]));
}
return arr;
}
//cbt for get childs by tag name
node.cbt = function(tagName){
var arr = new Array();
for(var i=0; i<node.getElementsByTagName(tagName).length; i++){
arr.push($o(node.getElementsByTagName(tagName)[i]));
}
return arr;
}
//icbn for get input child by attribute "name"
node.icbn = function(name){
//alert(node.getElementsByTagName("INPUT").length);
for(var i=0; i<node.getElementsByTagName("INPUT").length; i++){
if(node.getElementsByTagName("INPUT")[i].getAttribute("name") == name){
return $o(node.getElementsByTagName("INPUT")[i]);
}
}
}
//abn for get attribute value by attribute name
node.abn = function(attributeName){
//return $o(node.getAttribute(attributeName));
return node.getAttribute(attributeName);
}
//abdn for get data prefixed attribute value by attribute name
node.abdn = function(attributeName){
//return $o(node.getAttribute(attributeName));
return node.getAttribute("data-" + attributeName);
}
//p for get node parent
node.p = function(){
return $o(node.parentNode);
}
//ael for add event listener
node.ael = function(event, callback, useCapture){
node.addEventListener(event, callback, useCapture);
}
//rel for remove event listener
node.rel = function(event, callback, useCapture){
node.removeEventListener(event, callback, useCapture);
}
return node;
}
//get node by id
function $(id){
if(document.getElementById(id) == null){
//if node does not exist, return false
return false;
}else{
return $o(document.getElementById(id));
}
}
//get elements by tagname
function $ebt(tagName){
var arr = new Array();
for(var i=0; i<document.getElementsByTagName(tagName).length; i++){
arr.push($o(document.getElementsByTagName(tagName)[i]));
}
return arr;
}
//get elements by class name
function $ebc(className){
var arr = new Array();
for(var i=0; i<document.getElementsByClassName(className).length; i++){
arr.push($o(document.getElementsByClassName(className)[i]));
}
return arr;
}
//get elements by name
function $ebn(name){
var arr = new Array();
for(var i=0; i<document.getElementsByName(name).length; i++){
arr.push($o(document.getElementsByName(name)[i]));
}
return arr;
}
//create node by tag name
function $e(tagName){
return $o(document.createElement(tagName));
}
//create text node
function $t(text){
return document.createTextNode(text);
}