Hasbro.RoundedCorners = new Class ({
	options : {
		bg : Class.empty(),
		color : Class.empty(),
		size : 5
	},
	initialize : function(el, options) {
		this.cnrTargetEls = $$(el);
		this.setOptions(options);
		this.cnrTargetElBgColor = this.options.bg;
		this.cnrColor = this.options.color;
		this.cnrSize = this.options.size;
		
		this.cnrTargetEls.each(function(cnrTargetEl) {
			if ($defined(this.options.bg) == false) this.cnrTargetElBgColor = cnrTargetEl.getStyle('background-color');
			
			var cnrBox = cnrTargetEl.getChildren()[0];
			if ($defined(this.options.color) == false) {
				var bdrColor = cnrBox.getStyle('border-color');
				var bdrSize = cnrBox.getStyle('border-width');
				var bgColor = cnrBox.getStyle('background-color');
				var bdrSizeArr = bdrSize.split(' ');
				var bdrColorArr = bdrColor.split(' ');
				
				bdrSizeArr.each(function(bdrSize) {
					bdrSize = bdrSize.toInt();
					if (bdrSize > 0) {
						bdrColorArr.each(function(bdrColor) {
							if (!(bdrColor == '#333' || bdrColor == '#333333' || bdrColor == 'transparent')) {
								this.cnrColor = bdrColor;
							}
						}.bind(this));
					} else {
						this.cnrColor = bgColor;
					}
				}.bind(this));
				
			}
			this._doBuildCnr(this.cnrTargetElBgColor, this.cnrColor, 1, this.cnrSize);
			this.cnrContainer.injectInside(cnrTargetEl);
		}.bind(this));
	},
	_doBuildCnr : function(bg, color, mrgn, size) {
		this.cnrContainer = new Element('div', {
			'styles' : {
				'background-color' : bg
			}
		});
		var mrgnPrev = mrgn - mrgn;
		var mrgnNext = mrgn;
		for(var i = 0; i < size; i++) {
			this.cnr = new Element('div', {
				'styles' : {
					'background-color' : color,
					'height' : '1px',
					'margin-right' : mrgn,
					'margin-left' : mrgn,
					'overflow' : 'hidden'
				},
				'properties' : {
					'id' : 'hsb_cnr_' + i
				} 
			});
			mrgn = mrgnPrev + mrgnNext;
			mrgnPrev = mrgnNext;
			mrgnNext = mrgn;
			this.cnr.injectInside(this.cnrContainer);
		}
	}
});
Hasbro.RoundedCorners.implement(new Options);
