/* More Nifty Corners */
/* Started by di Alessandro Fulciniti (a.fulciniti@html.it) */
/* Revised Friday January 27, 2006 9:53pm by Oliver Merk */

var isXHTML;

function niftyCheck() {
	if (!document.getElementById || !document.createElement) {
			return(false);
	}
	isXHTML=/html\:/.test(document.getElementsByTagName('body')[0].nodeName);
	if (Array.prototype.push==null) {Array.prototype.push=function() {
			this[this.length]=arguments[0]; return(this.length);}
	}
	return(true);



}

function rounded(selector, wich, bk, color, opt) {

	var i, prefixt, prefixb, cn='r', ecolor='', edges = false, eclass='', b=false, t=false;

	if (color=='transparent') {
		cn=cn+'x';
		ecolor=bk;
		bk='transparent';
	} else if (opt && opt.indexOf('border') >= 0) {
		var optar=opt.split(' ');
		for (var i=0;i<optar.length;i++) {
			if (optar[i].indexOf('#') >= 0) {
				ecolor=optar[i];
			}
		}
		if (ecolor=='') {
			ecolor='#666';
		}
		cn+='e';
		edges=true;
	} else if (opt && opt.indexOf('smooth') >= 0) {
		cn+='a';
		ecolor=mix(bk,color);
	}

	if (opt && opt.indexOf('small') >= 0) {
		cn+='s';
	}

	prefixt=cn;
	prefixb=cn;

	if (wich.indexOf('all') >= 0) {t=true;b=true}
	else if (wich.indexOf('top') >= 0) t='true';
	else if (wich.indexOf('tl') >= 0) {
		t='true';
		if (wich.indexOf('tr')<0) prefixt+='l';
		}
	else if (wich.indexOf('tr') >= 0) {
		t='true';
		prefixt+='r';
		}
	if (wich.indexOf('bottom') >= 0) b=true;
	else if (wich.indexOf('bl') >= 0) {
		b='true';
		if (wich.indexOf('br')<0) prefixb+='l';
		}
	else if (wich.indexOf('br') >= 0) {
		b='true';
		prefixb+='r';
	}
	var v=getElementsBySelector(selector);
	var l=v.length;

	for (var i=0; i < l; i++) {
		if (edges) addBorder(v[i],ecolor);
		if (t) addTop(v[i],bk,color,ecolor,prefixt);
		if (b) addBottom(v[i],bk,color,ecolor,prefixb);
	}

}

function addBorder(el,bc) {
	var i;
	if (!el.passed) {
		if (el.childNodes.length==1 && el.childNodes[0].nodeType==3) {
			var t=el.firstChild.nodeValue;
			el.removeChild(el.lastChild);
			var d=createEl('span');
			d.style.display='block';
			d.appendChild(document.createTextNode(t));
			el.appendChild(d);
		}
		for (var i=0; i < el.childNodes.length;i++) {
			if (el.childNodes[i].nodeType==1) {
				el.childNodes[i].style.borderLeft='1px solid '+bc;
				el.childNodes[i].style.borderRight='1px solid '+bc;
			}
		}
	}
	el.passed=true;
}

function addTop(el,bk,color,bc,cn) {
	var i,lim=4,d=createEl('b');

	if (cn.indexOf('s') >= 0) lim=2;
	if (bc) d.className='artop';
	else d.className='rtop';
	d.style.backgroundColor=bk;
	for(i=1;i<=lim;i++) {
		var x=createEl('b');
		x.className=cn + i;
		x.style.backgroundColor=color;
		if (bc) x.style.borderColor=bc;
		d.appendChild(x);
	}
	el.style.paddingTop=0;
	el.insertBefore(d,el.firstChild);
}

function addBottom(el,bk,color,bc,cn) {
	var i,lim=4,d=createEl('b');

	if (cn.indexOf('s') >= 0) lim=2;
	if (bc) d.className='artop';
	else d.className='rtop';
	d.style.backgroundColor=bk;
	for(i=lim;i > 0;i--) {
		var x=createEl('b');
		x.className=cn + i;
		x.style.backgroundColor=color;
		if (bc) x.style.borderColor=bc;
		d.appendChild(x);
		}
	el.style.paddingBottom=0;
	el.appendChild(d);
}

function createEl(x) {
	if (isXHTML) return(document.createElementNS('http://www.w3.org/1999/xhtml',x));
	else return(document.createElement(x));
}

function getElementsBySelector(selector) {
	var i,selid='',selclass='',tag=selector,f,s=[],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);
		f=document.getElementById(fs[1]);
		if (f) return(f.getElementsByTagName(s[1]));
		return(objlist);
		}
	if (selector.indexOf('#') > 0) { //id selector like 'tag#id'
		s=selector.split('#');
		tag=s[0];
		selid=s[1];
		}
	if (selid!='') {
		f=document.getElementById(selid);
		if (f) objlist.push(f);
		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 (var i=0;i<v.length;i++) {
		if (v[i].className.indexOf(selclass) >= 0) {
			objlist.push(v[i]);
			}
		}
	return(objlist);
}

function mix(c1,c2) {
	var i,step1,step2,x,y,r=new Array(3);
	if (c1.length==4)step1=1;
	else step1=2;
	if (c2.length==4) step2=1;
	else step2=2;
	for (var i=0;i<3;i++) {
		x=parseInt(c1.substr(1+step1*i,step1),16);
		if (step1==1) x=16*x+x;
		y=parseInt(c2.substr(1+step2*i,step2),16);
		if (step2==1) y=16*y+y;
		r[i]=Math.floor((x*50+y*50)/100);
		}
	return('#'+r[0].toString(16)+r[1].toString(16)+r[2].toString(16));
}