function autoCaption() {
	
	var content = document.getElementById ('content');
	var imgs = content.getElementsByTagName ('img');
	for (var i = 0; i < imgs.length; i++) {
		
		if(/caption/.test(imgs[i].className)) {
			
			var original = imgs[i];
			var title = original.getAttribute('title');
			
			var wrapper = document.createElement('div');
			
			if(/left/.test(original.className)) {
				jscss('add',wrapper,'left');
				jscss('remove',original,'left');
			}
			
			if(/right/.test(original.className)) {
				jscss('add',wrapper,'right');
				jscss('remove',original,'right');
			}
			
			if(/center/.test(original.className)) {
				jscss('add',wrapper,'center');
				jscss('remove',original,'center');
			}
			
			jscss('add',wrapper,'captionimgwrapper');
			wrapper.id = 'captionimgwrapper' + i;
			
			if(original.style.cssFloat) original.style.cssFloat = 'none';
			if(original.style.styleFloat) original.style.styleFloat = 'none';
			original.style.marginTop = '0';
			original.style.marginRight = '0';
			original.style.marginBottom = '0';
			original.style.marginLeft = '0';
			
			if(original.parentNode.tagName.toUpperCase()=='A') original = original.parentNode;
			
			original.parentNode.replaceChild(wrapper, original);
			wrapper.appendChild(original);
	
			var width = imgs[i].offsetWidth;
			wrapper.style.width = width + 'px';
			
			if ((title) && (/\S/.test(title))) {
			
				var caption = document.createElement('div');
				caption.className = 'caption';
				caption.appendChild(document.createTextNode(title));
				imgs[i].parentNode.appendChild(caption);
			
			}
		}
	}	
}

function jscss(a,o,c1,c2)
{
  switch (a){
    case 'swap':
      o.className=!jscss('check',o,c1)?o.className.replace(c2,c1): o.className.replace(c1,c2);
    break;
    case 'add':
      if(!jscss('check',o,c1)){o.className+=o.className?' '+c1:c1;}
    break;
    case 'remove':
      var rep=o.className.match(' '+c1)?' '+c1:c1;
      o.className=o.className.replace(rep,'');
    break;
    case 'check':
      return new RegExp('\\b'+c1+'\\b').test(o.className)
    break;
  }
}
