function NiftyCheck() {
    if(!document.getElementById || !document.createElement) {
        return(false);
    } else {
        var b = navigator.userAgent.toLowerCase();
        if(b.indexOf('msie 5') > 0 && b.indexOf('opera') == -1 && b.indexOf('firefox') == -1) {
           return(false);
        } else {
           return(true);
        }
    }
}

function Rounded(selector, bk, color, size) {
    var i;
    var v = getElementsBySelector(selector);
    var l = v.length;
    for (i=0; i<l; i++) {
        AddTop(v[i], bk, color, size);
        AddBottom(v[i], bk, color, size);
    }
}

function RoundedTop(selector, bk, color, size) {
    var i;
    var v = getElementsBySelector(selector);
    for(i=0; i<v.length; i++) {
        AddTop(v[i], bk, color, size);
    }
}

function RoundedBottom(selector, bk, color, size) {
    var i;
    var v = getElementsBySelector(selector);
    for(i=0; i<v.length; i++) {
        AddBottom(v[i], bk, color, size);
    }
}

function AddTop(el, bk, color, size) {
    var i;
    var d = document.createElement('b');
    var cn = 'r';
    var lim = 4;
    if (size && size == 'small') {
	   cn = 'rs';
	   lim = 2
	}
    d.className = 'rtop';
    d.style.backgroundColor = bk;
    for(i=1; i<=lim; i++) {
        var x = document.createElement('b');
        x.className = cn + i;
        x.style.backgroundColor = color;
        d.appendChild(x);
    }
    el.insertBefore(d, el.firstChild);
}

function AddBottom(el, bk, color, size) {
    var i;
    var d = document.createElement('b');
    var cn = 'r';
    var lim = 4;
    if (size && size == 'small') {
	   cn = 'rs';
	   lim = 2
	}
    d.className = 'rbottom';
    d.style.backgroundColor = bk;
    for (i=lim; i>0; i--) {
        var x = document.createElement('b');
        x.className = cn + i;
        x.style.backgroundColor = color;
        d.appendChild(x);
    }
    el.appendChild(d, el.firstChild);
}

function getElementsBySelector(selector) {
    var i;
    var s = [];
    var selid = '';
    var selclass = '';
    var tag = selector;
    var objlist = [];
    if(selector.indexOf(' ') > 0) {  //descendant selector like "tag#id tag"
        s = selector.split(' ');
        var fs = s[0].split('#');
        if(fs.length == 1) {
		   return(objlist);
		} else {
            return(document.getElementById(fs[1]).getElementsByTagName(s[1]));
        }
    }
    if (selector.indexOf('#') > 0) { //id selector like "tag#id"
        s = selector.split('#');
        tag = s[0];
        selid = s[1];
    }
    if (selid != '') {
        objlist.push(document.getElementById(selid));
        return(objlist);
    }
    if (selector.indexOf('.') > 0) {  //class selector like "tag.class"
        s = selector.split('.');
        tag = s[0];
        selclass = s[1];
    }
    var v = document.getElementsByTagName(tag);  // tag selector like "tag"
    if (selclass == '') {
        return(v);
    }
    for (i=0; i<v.length; i++) {
        if (v[i].className == selclass) {
            objlist.push(v[i]);
        }
    }
    return(objlist);
}