var isIE = 0;
var tmp = navigator.appName == 'Microsoft Internet Explorer' && navigator.userAgent.indexOf('Opera') < 1 ? 1 : 0;
if(tmp) var isIE = document.namespaces ? 1 : 0;
var globalradius = 10;

if(isIE) {
	if(document.namespaces['v']==null) {
		var e=["shape","shapetype","group","background","path","formulas","handles","fill","stroke","shadow","textbox","textpath","imagedata","line","polyline","curve","roundrect","oval","rect","arc","image"],s=document.createStyleSheet(); 
		for(var i=0; i<e.length; i++) {s.addRule("v\\:"+e[i],"behavior: url(#default#VML);");} document.namespaces.add("v","urn:schemas-microsoft-com:vml");
	} 
}

function getRadius(radius,width,height){
	var part = (Math.min(width,height)/100);
	radius = Math.max(Math.min(100,radius/part),0);
	return radius + '%';
}

function getImages(className){
	var children = document.getElementsByTagName('img'); 
	var elements = new Array(); var i = 0;
	var child; var classNames; var j = 0;
	for (i=0;i<children.length;i++) {
		child = children[i];
		classNames = child.className.split(' ');
		for (var j = 0; j < classNames.length; j++) {
			if (classNames[j] == className) {
				elements.push(child);
				break;
			}
		}
	}
	return elements;
}

function getClasses(classes,string){
	var temp = '';
	for (var j=0;j<classes.length;j++) {
		if (classes[j] != string) {
			if (temp) {
				temp += ' '
			}
			temp += classes[j];
		}
	}
	return temp;
}

function roundedRect(ctx,x,y,width,height,radius,nopath){
	if (!nopath) ctx.beginPath();
	ctx.moveTo(x,y+radius);
	ctx.lineTo(x,y+height-radius);
	ctx.quadraticCurveTo(x,y+height,x+radius,y+height);
	ctx.lineTo(x+width-radius,y+height);
	ctx.quadraticCurveTo(x+width,y+height,x+width,y+height-radius);
	ctx.lineTo(x+width,y+radius);
	ctx.quadraticCurveTo(x+width,y,x+width-radius,y);
	ctx.lineTo(x+radius,y);
	ctx.quadraticCurveTo(x,y,x,y+radius);
	if (!nopath) ctx.closePath();
}

function addIECorners() {
	var theimages = getImages('imgcorner');
	var image;
	var object;
	var vml;
	var classes = '';
	var iradius = globalradius;
	var newClasses = '';
	var maxdim = null;
	var radius = null; 
	var display = "";
	var flt = null;
	var width = null;
	var height = null;
	var align = null;
	var valign = null;
	var start, head, fill, foot, end;
	for (var i=0;i<theimages.length;i++) {	
		image = theimages[i];
		object = image.parentNode; 
		classes = image.className.split(' ');
		newClasses = getClasses(classes,"imgcorner");
		width = image.width; 
		height = image.height;
		maxdim = Math.min(width,height)/2;
		iradius = Math.min(maxdim,iradius); 
		radius = getRadius(iradius,width,height);
		flt = image.currentStyle.styleFloat.toLowerCase();
		display = (image.currentStyle.display.toLowerCase()=='block')?'block':'inline-block';
		vml = document.createElement(['<var style="overflow:hidden;display:' + display + ';width:' + width + 'px;height:' + height + 'px;padding:0;">'].join(''));
		display = (flt=='left'||flt=='right')?'inline':display;
		start = '<v:group style="zoom:1; display:' + display + '; margin:-1px 0 0 -1px; padding:0; position:relative; width:' + width + 'px;height:' + height + 'px;" coordsize="' + width + ',' + height + '">';
		fill = '<v:fill src="' + image.src + '" type="frame" />';
		foot = (iradius>0?'</v:roundrect>':'</v:rect>');
		end = '</v:group>';
		
		head = '<v:roundrect arcsize="' + radius + '" strokeweight="0" filled="t" stroked="f" fillcolor="#ffffff" style="position:absolute; margin:-1px 0 0 -1px;padding:0; width:' + width + 'px;height:' + height + 'px;">';
		vml.innerHTML = start + head + fill + foot + end;
		vml.className = newClasses;
		vml.style.cssText = image.style.cssText;
		vml.style.height = image.height+'px';
		vml.style.width = image.width+'px';
		vml.height = image.height;
		vml.width = image.width;
		vml.src = image.src; vml.alt = image.alt;
		vml.border = image.border;
		align = image.getAttribute("align");
		valign = image.getAttribute("valign");
		if(align!=null) vml.setAttribute("align", align);
		if(valign!=null) vml.setAttribute("valign", valign);
		if(image.id!='') vml.id = image.id; 
		if(image.title!='') vml.title = image.title;
		object.style.height = image.height+'px';
		object.style.width = image.width+'px';
		object.height = image.height;
		object.width = image.width;
		object.replaceChild(vml,image);
	}
}

function addCorners() {
	var theimages = getImages('imgcorner');
	var image; 
	var object; 
	var canvas; 
	var context; 
	var iradius = globalradius;
	var classes = '';
	var newClasses = ''; 
	var maxdim = null;
	var style = null;
	var align = null;
	var valign = null;
	for (var i=0;i<theimages.length;i++) {	
		image = theimages[i];
		object = image.parentNode; 
		canvas = document.createElement('canvas');
		if (canvas.getContext) {
			classes = image.className.split(' ');
			newClasses = getClasses(classes,"imgcorner");
			canvas.className = newClasses;
			canvas.style.cssText = image.style.cssText;
			canvas.style.height = image.height+'px';
			canvas.style.width = image.width+'px';
			canvas.height = image.height;
			canvas.width = image.width;
			canvas.src = image.src;
			canvas.alt = image.alt;
			canvas.border = image.border;
			align = image.getAttribute("align");
			valign = image.getAttribute("valign");
			if(align!=null) canvas.setAttribute("align", align);
			if(valign!=null) canvas.setAttribute("valign", valign);
			if(image.id!='') canvas.id = image.id;
			if(image.title!='') canvas.title = image.title;
			maxdim = Math.min(canvas.width,canvas.height)/2;
			iradius = Math.min(maxdim,iradius);
			context = canvas.getContext("2d");
			object.replaceChild(canvas,image);
			context.clearRect(0,0,canvas.width,canvas.height);
			context.save();
			if (iradius<=0) {
				context.beginPath();
				context.rect(0,0,canvas.width,canvas.height);
				context.closePath();
			}else {
				roundedRect(context,0,0,canvas.width,canvas.height,iradius);
			}
			context.clip();
			context.fillStyle = 'rgba(0,0,0,0)';
			context.fillRect(0,0,canvas.width,canvas.height);
			context.drawImage(image,0,0,canvas.width,canvas.height);
			canvas.style.visibility = 'visible';
		}
	}
}

var corner_lastOnload = window.onload;
window.onload = function () { if(corner_lastOnload) corner_lastOnload(); if(isIE){addIECorners(); }else {addCorners();}}
