'remmah.object'.namespace();


remmah.object.Color={
	toString: function()
	{
		return 'remmah.object.Color';
	},

	random: function()
	{
		return (Math.random()*0xFFFFFF<<0).toString(16);
	},

	contrast: function(htmlColor)
	{
		var col = htmlColor.replace('#','');
		var lightCol = this.hex(this.shade(this.rgb(col), 2));
		var darkCol = this.hex(this.shade(this.rgb(col), -1));
		return '#' + (Number('0x'+htmlColor.substr(1)).toString(10) > 0xffffff/2 ? darkCol :  lightCol);
	},
	
	rgb: function(htmlColor)
	{
		var o = htmlColor.toLowerCase();
		return [parseInt(o.slice(0,2),16), parseInt(o.slice(2,4),16), parseInt(o.slice(4),16)];
	},
	
	shade: function(arRgb,val)
	{
		arRgb = eval(arRgb);
		var v=[],i
		for(i=0;i<3;i++)
		{
			v[i] = Math.round(arRgb[i]*val)
			if(v[i]>255) v[i]=255;
			if(v[i]<0) v[i]=0;
		}
		return v
	},
	
	hex:function(arRgb)
	{
		arRgb = eval(arRgb);
		return  ('0'+arRgb[0].toString(16)).slice(-2)+
			('0'+arRgb[1].toString(16)).slice(-2)+
			('0'+arRgb[2].toString(16)).slice(-2)

	},

	hex2dec: function(hex){return (parseInt(hex,16));},
	
	dec2hex: function(dec){return (dec < 16 ? "0" : "") + dec.toString(16);},

	createTestData: function(amount)
	{
		element = document.getElementById('testbox');
		if (element)
		{
			//var color = '0000ff';
			var color = this.random();
			var baseColor = this.rgb(color);

			element.innerHTML = '';

			var display;
			var container = document.createElement('div');
			container.style.cssText = 'border: 1px solid #999; padding: 1px;';

			var div = document.createElement('div');
			div.innerHTML = 'dyn test data basecolor';
			div.style.cssText = 'margin: 1px; background-color: #'+color+';';
			container.appendChild(div);			

			for (var i=1; i>0; i=i-0.1)
			{
				var num = i;
				var shade = '#'+this.hex(this.shade(baseColor, num));
				var colContrast = this.contrast(shade);
				
				var div = document.createElement('div');
				div.innerHTML = 'dyn test shade ' + (num.toFixed(2));
				div.style.cssText = 'margin: 1px; border: 1px solid #000; background-color: '+shade+'; color: '+colContrast+';';
				container.appendChild(div);
			}
			element.appendChild(container);
			//this.element.style.height = 'auto';
		}
	}
}
