var cornerbox = function( ) {
	
	var design=new Object;
	for(var i=0; i<cornerbox.arguments.length; i++){
		var args=cornerbox.arguments[i];
		design[args.classname] = new Object({
			imgfolder:args.imgfolder,
			hTop:args.hTop,
			hBot:args.hBot,
			wLef:args.wLef,
			wRig:args.wRig
		});
	}
	
	$$('.centerboxrc,.leftboxrc,.rightboxrc').each( function(elem){
		var cboxtype = elem.hasClass('centerboxrc') ? 'cboxcenter' : elem.hasClass('leftboxrc') ? 'cboxleft' : elem.hasClass('rightboxrc') ? 'cboxright' : '';
		
		/*default: black thin border*/
		var hTop = 18;
		var hBot = 24;
		var wLef = 20;
		var wRig = 20;
		var imgfolder = '/typo3conf/ext/mainlayout/res/img/box_blks/';
		
		/* see if designclass is found... if so override with args */
		for (var classname in design) {
			if( elem.hasClass(classname) ) {
				elem.removeClass(classname); 
				imgfolder = design[classname].imgfolder;
				hTop = design[classname].hTop;
				hBot = design[classname].hBot;
				wLef = design[classname].wLef;
				wRig = design[classname].wRig;
				break;
			}
		};
		
		
		var content = elem.get('html');

		var tl = new Element('div', { 
								'class': 'corner tl png',
								'styles': {
									'height': hTop+'px',
									'background-image': 'url('+imgfolder+'tl.png)'
								} 
							});
		var tr = new Element('div', { 
								'class': 'corner tr png',
								'styles': {
									'height': hTop+'px',
									'background-image': 'url('+imgfolder+'tr.png)'
								} 
							});
		var bl = new Element('div', { 
								'class': 'corner bl png',
								'styles': {
									'height': hBot+'px',
									'bottom': (-hTop-hBot)+'px',
									'background-image': 'url('+imgfolder+'bl.png)'
								} 
							});
		var br = new Element('div', { 
								'class': 'corner br png',
								'styles': {
									'height': hBot+'px',
									'bottom': (-hTop-hBot)+'px',
									'background-image': 'url('+imgfolder+'br.png)'
								} 
							});
		var top = new Element('div', { 
								'class': 'hbar top png',
								'styles': {
									'height': hTop+'px',
									'background-image': 'url('+imgfolder+'top.png)'
								} 
							});
		var bottom = new Element('div', { 
								'class': 'hbar bottom png',
								'styles': {
									'height': hBot+'px',
									'bottom': (-hTop-hBot)+'px',
									'background-image': 'url('+imgfolder+'bottom.png)'
								} 
							});
		var left = new Element('div', { 
								'class': 'vbar left png',
								'styles': {
									'top': hTop+'px',
									'bottom': -hTop+'px',
									'background-image': 'url('+imgfolder+'left.png)'
								} 
							});
		var right = new Element('div', { 
								'class': 'vbar right png',
								'styles': {
									'top': hTop+'px',
									'bottom': -hTop+'px',
									'background-image': 'url('+imgfolder+'right.png)'
								} 
							});
		var inner = new Element('div', { 
								'class': 'inner png',
								'styles': {
									'top': hTop+'px',
									'background-image': 'url('+imgfolder+'bg.png)'
								},
								'html': content	
							});
		
		var copy=elem.clone();
		
		/* remove the identifierclass (fallback styles)*/
		switch (cboxtype) {
			case 'cboxcenter': copy.removeClass('centerboxrc'); break;
			case 'cboxleft': copy.removeClass('leftboxrc'); break;
			case 'cboxright': copy.removeClass('rightboxrc'); break;
			default: break;
		};
		
		var restclass=copy.get('class');

		var outbox = new Element('div', { 
								'class': cboxtype+' '+restclass
							});
		/* assemble the whole crap and replace the original element*/
		copy.addClass('cbox');
		copy.setStyle('top',-hTop+'px');
		copy.set('html','');

		tl.inject(copy,'top');
		tr.inject(copy,'top');
		bl.inject(copy,'top');
		br.inject(copy,'top');
		top.inject(copy,'top');
		left.inject(copy,'top');
		right.inject(copy,'top');
		bottom.inject(copy,'top');
		inner.inject(copy,'top');
		
		copy.inject(outbox,'bottom');
		outbox.replaces(elem);
		
	});
};

