function GetComputedStyle(elem,style){
	if(typeof(elem) == "undefined")return;
	if(typeof(elem.currentStyle) != "undefined"){ //IE
		var e=-1;
		while((e=style.indexOf("-",e+1)) != -1){
			style = style.substr(0,e)+style.substr(e+1,1).toUpperCase()+style.substr(e+2);
		}
		return elem.currentStyle[style];
	}else{ //Good browsers
		return document.defaultView.getComputedStyle(elem,null).getPropertyValue(style);
	}
}

//corners:
//1 - Top left
//2 - Top right
//3 - Top
//4 - Bottom left
//5 - Left
//6 - Bottom left/Top right
//7 - Left/Top
//8 - Bottom right
//9 - Bottom right/Top left
//10 - Right
//11 - Right/Top
//12 - Bottom
//13 - Bottom/Left
//14 - Bottom/Right
//15 - All
function RoundCorners(sel,px,color,border,corners,offsets,force){
	var elems = $(sel).get();
	if(elems.length == 0 || corners == 0)return;
	if(typeof(offsets) == "undefined")offsets = {tl:[0,0],tr:[0,0],bl:[0,0],br:[0,0]};
	else{if(typeof(offsets.all) != "undefined"){
		offsets.tl=offsets.all;
		offsets.tr=offsets.all;
		offsets.bl=offsets.all;
		offsets.br=offsets.all;
	}else{if(typeof(offsets.top) != "undefined"){
		offsets.tl=offsets.top;
		offsets.tr=offsets.top;
	}if(typeof(offsets.bot) != "undefined"){
		offsets.bl=offsets.bot;
		offsets.br=offsets.bot;
	}
	if(typeof(offsets.tl) == "undefined")offsets.tl=[0,0];
	if(typeof(offsets.tr) == "undefined")offsets.tr=[0,0];
	if(typeof(offsets.bl) == "undefined")offsets.bl=[0,0];
	if(typeof(offsets.br) == "undefined")offsets.br=[0,0];}}
	//Verify it wasn't already applied
	if(corners&1){
		if(GetComputedStyle(elems[0],"border-top-left-radius") ||
		GetComputedStyle(elems[0],"-moz-border-radius-topleft") ||
		GetComputedStyle(elems[0],"-webkit-border-top-left-radius") ||
		GetComputedStyle(elems[0],"-khtml-border-top-left-radius"))return;
	}else if(corners&2){
		if(GetComputedStyle(elems[0],"border-top-right-radius") ||
		GetComputedStyle(elems[0],"-moz-border-radius-topright") ||
		GetComputedStyle(elems[0],"-webkit-border-top-right-radius") ||
		GetComputedStyle(elems[0],"-khtml-border-top-right-radius"))return;
	}else if(corners&4){
		if(GetComputedStyle(elems[0],"border-bottom-left-radius") ||
		GetComputedStyle(elems[0],"-moz-border-radius-bottomleft") ||
		GetComputedStyle(elems[0],"-webkit-border-bottom-left-radius") ||
		GetComputedStyle(elems[0],"-khtml-border-bottom-left-radius"))return;
	}else if(corners&8){
		if(GetComputedStyle(elems[0],"border-bottom-right-radius") ||
		GetComputedStyle(elems[0],"-moz-border-radius-bottomright") ||
		GetComputedStyle(elems[0],"-webkit-border-bottom-right-radius") ||
		GetComputedStyle(elems[0],"-khtml-border-bottom-right-radius"))return;
	}
	//Not applied, apply now
	for(var i=0;i<elems.length;i++){
		/*var pb = new Object();
		pb.l = GetComputedStyle(elems[i],'border-left-width');
		pb.r = GetComputedStyle(elems[i],'border-right-width');
		pb.t = GetComputedStyle(elems[i],'border-top-width');
		pb.b = GetComputedStyle(elems[i],'border-bottom-width');
		for(var j in pb){
			if(typeof(pb[j]) == "undefined" || pb[j] == "none")pb[j] = 0;
			else {
				pb[j] = pb[j].match("([0-9+])px")[1]*1;
			}
		}
		var pxw = px+pb.l+pb.r;
		var pxh = px+pb.t+pb.b;*/
		var html = '<SPAN style="display:inline-block;position:relative;margin-bottom:-'+px+'px">',
			sp1 = '<SPAN style="width:'+px+'px;height:'+px+'px;position:absolute;z-index:500'//;margin:-'+px+'px';
		var sp2 = sp1+';right:'+(offsets.tr[0])+'px;top:'+(offsets.tr[1])+'px">',
			sp3 = sp1+';left:'+(offsets.bl[0])+'px;bottom:'+(offsets.bl[1])+'px">',
			sp4 = sp1+';right:'+(offsets.br[0])+'px;bottom:'+(offsets.br[1])+'px">';
		sp1 += ';left:'+(offsets.tl[0])+'px;top:'+(offsets.tl[1])+'px">';
		var k=px;
		var lim=Math.ceil(k/2);
		var stpx=Math.ceil(lim/2);
		var lowmem=new Array(0);
		var clm=0;
		for(var j=px-1;j>=0;j--){
			var bw = 1;
			if(j != px-1 && j >= lim){ //Edge/downstroke should always be 1
				bw = Math.max(stpx,1);
				lowmem.push(bw);
				stpx--;
				k-=bw;
			}
			else if(j < lim){
				if(clm==0){
					clm = lowmem.pop();
					k--;
				}
				clm--;
			}else k-=bw;
			k=Math.max(k,0);
			var spx = '<SPAN style="position:absolute;display:block;width:'+k+'px;height:1px;background-color:'+color;
			sp1 += spx+';bottom:'+j+'px;left:0px;border-right:'+bw+'px solid '+border+'"></SPAN>';
			sp2 += spx+';bottom:'+j+'px;right:0px;border-left:'+bw+'px solid '+border+'"></SPAN>';
			sp3 += spx+';top:'+j+'px;left:0px;border-right:'+bw+'px solid '+border+'"></SPAN>';
			sp4 += spx+';top:'+j+'px;right:0px;border-left:'+bw+'px solid '+border+'"></SPAN>';
		}
		var spx = "";
		if(corners&1)spx += sp1+'</SPAN>'
		if(corners&2)spx += sp2+'</SPAN>'
		if(corners&4)spx += sp3+'</SPAN>'
		if(corners&8)spx += sp4+'</SPAN>'
		if(elems[i].childNodes.length == 0 || force == 1)elems[i].outerHTML = html+spx+elems[i].outerHTML+'</SPAN>';
		else elems[i].innerHTML = spx+elems[i].innerHTML+'</SPAN>';
		alrt=false;
	}
}