/*Modified by Mark Ballenger */
/*Modifications: 
rewrote the logic for the class selector so that nifty understands elements with multiple classes 
Also, I got rid of inline color attributes and assigned classes so that nifty can completely be controled
through CSS*/
/*Note: when using multiple classes for an element, "nifty" must come first */
function NiftyCheck(){
if(!document.getElementById || !document.createElement)
    return(false);
var b=navigator.userAgent.toLowerCase();
if(b.indexOf("msie 5")>0 && b.indexOf("opera")==-1)
    return(false);
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="Nr";
var lim=4;
if(size && size=="small"){ cn="rs"; lim=2}
d.className="Nrtop";
d.className+=" Bg";
d.style.width="100%";
for(i=1;i<=lim;i++){
    var x=document.createElement("b");
    x.className=cn + i;
    x.className+=" Fore";
    d.appendChild(x);
    }
el.insertBefore(d,el.firstChild);
}

function AddBottom(el,bk,color,size){
var i;
var d=document.createElement("b");
var cn="Nr";
var lim=4;
if(size && size=="small"){ cn="rs"; lim=2}
d.className="Nrbottom";
d.className+= " Bg";
for(i=lim;i>0;i--){
    var x=document.createElement("b");
    x.className=cn + i;
    x.className+= " Fore";
    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);
    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);

var tagclass;
for(i=0;i<v.length;i++){
    tagclass = v[i].className.split(" ");
    tagclass = tagclass[tagclass.length - 1 ];
    //if(i==9){alert(tagclass);}
    if(tagclass==selclass){
    //alert("selclass: " + selclass + "\n" + "tagclass: " + tagclass + "\n" + "classname:" + v[i].classname);
        objlist.push(v[i]);
        }
    }
return(objlist);
}