var Colornames = new Array();

Colornames['aliceblue'] = '#f0f8ff';
Colornames['antiquewhite'] = '#faebd7';
Colornames['aqua'] = '#00ffff';
Colornames['aquamarine'] = '#7fffd4';
Colornames['azure'] = '#f0ffff';
Colornames['beige'] = '#f5f5dc';
Colornames['bisque'] = '#ffe4c4';
Colornames['black'] = '#000000';
Colornames['blanchedalmond'] = '#ffebcd';
Colornames['blue'] = '#0000ff';
Colornames['blueviolet'] = '#8a2be2';
Colornames['brown'] = '#a52a2a';
Colornames['burlywood'] = '#deb887';
Colornames['cadetblue'] = '#5f9ea0';
Colornames['chartreuse'] = '#7fff00';
Colornames['chocolate'] = '#d2691e';
Colornames['coral'] = '#ff7f50';
Colornames['cornflowerblue'] = '#6495ed';
Colornames['cornsilk'] = '#fff8dc';
Colornames['crimson'] = '#dc143c';
Colornames['cyan'] = '#00ffff';
Colornames['darkblue'] = '#00008b';
Colornames['darkcyan'] = '#008b8b';
Colornames['darkgoldenrod'] = '#b8860b';
Colornames['darkgray'] = '#a9a9a9';
Colornames['darkgrey'] = '#a9a9a9';
Colornames['darkgreen'] = '#006400';
Colornames['darkkhaki'] = '#bdb76b';
Colornames['darkmagenta'] = '#8b008b';
Colornames['darkolivegreen'] = '#556b2f';
Colornames['darkorange'] = '#ff8c00';
Colornames['darkorchid'] = '#9932cc';
Colornames['darkred'] = '#8b0000';
Colornames['darksalmon'] = '#e9967a';
Colornames['darkseagreen'] = '#8fbc8f';
Colornames['darkslateblue'] = '#483d8b';
Colornames['darkslategray'] = '#2f4f4f';
Colornames['darkslategrey'] = '#2f4f4f';
Colornames['darkturquoise'] = '#00ced1';
Colornames['darkviolet'] = '#9400d3';
Colornames['deeppink'] = '#ff1493';
Colornames['deepskyblue'] = '#00bfff';
Colornames['dimgray'] = '#696969';
Colornames['dimgrey'] = '#696969';
Colornames['dodgerblue'] = '#1e90ff';
Colornames['firebrick'] = '#b22222';
Colornames['floralwhite'] = '#fffaf0';
Colornames['forestgreen'] = '#228b22';
Colornames['fuchsia'] = '#ff00ff';
Colornames['gainsboro'] = '#dcdcdc';
Colornames['ghostwhite'] = '#f8f8ff';
Colornames['gold'] = '#ffd700';
Colornames['goldenrod'] = '#daa520';
Colornames['gray'] = '#808080';
Colornames['grey'] = '#808080';
Colornames['green'] = '#008000';
Colornames['greenyellow'] = '#adff2f';
Colornames['honeydew'] = '#f0fff0';
Colornames['hotpink'] = '#ff69b4';
Colornames['indianred'] = '#cd5c5c';
Colornames['indigo'] = '#4b0082';
Colornames['ivory'] = '#fffff0';
Colornames['khaki'] = '#f0e68c';
Colornames['lavender'] = '#e6e6fa';
Colornames['lavenderblush'] = '#fff0f5';
Colornames['lawngreen'] = '#7cfc00';
Colornames['lemonchiffon'] = '#fffacd';
Colornames['lightblue'] = '#add8e6';
Colornames['lightcoral'] = '#f08080';
Colornames['lightcyan'] = '#e0ffff';
Colornames['lightgoldenrodyellow'] = '#fafad2';
Colornames['lightgray'] = '#d3d3d3';
Colornames['lightgrey'] = '#d3d3d3';
Colornames['lightgreen'] = '#90ee90';
Colornames['lightpink'] = '#ffb6c1';
Colornames['lightsalmon'] = '#ffa07a';
Colornames['lightseagreen'] = '#20b2aa';
Colornames['lightskyblue'] = '#87cefa';
Colornames['lightslategray'] = '#778899';
Colornames['lightslategrey'] = '#778899';
Colornames['lightsteelblue'] = '#b0c4de';
Colornames['lightyellow'] = '#ffffe0';
Colornames['lime'] = '#00ff00';
Colornames['limegreen'] = '#32cd32';
Colornames['linen'] = '#faf0e6';
Colornames['magenta'] = '#ff00ff';
Colornames['maroon'] = '#800000';
Colornames['mediumaquamarine'] = '#66cdaa';
Colornames['mediumblue'] = '#0000cd';
Colornames['mediumorchid'] = '#ba55d3';
Colornames['mediumpurple'] = '#9370d8';
Colornames['mediumseagreen'] = '#3cb371';
Colornames['mediumslateblue'] = '#7b68ee';
Colornames['mediumspringgreen'] = '#00fa9a';
Colornames['mediumturquoise'] = '#48d1cc';
Colornames['mediumvioletred'] = '#c71585';
Colornames['midnightblue'] = '#191970';
Colornames['mintcream'] = '#f5fffa';
Colornames['mistyrose'] = '#ffe4e1';
Colornames['moccasin'] = '#ffe4b5';
Colornames['navajowhite'] = '#ffdead';
Colornames['navy'] = '#000080';
Colornames['oldlace'] = '#fdf5e6';
Colornames['olive'] = '#808000';
Colornames['olivedrab'] = '#6b8e23';
Colornames['orange'] = '#ffa500';
Colornames['orangered'] = '#ff4500';
Colornames['orchid'] = '#da70d6';
Colornames['palegoldenrod'] = '#eee8aa';
Colornames['palegreen'] = '#98fb98';
Colornames['paleturquoise'] = '#afeeee';
Colornames['palevioletred'] = '#d87093';
Colornames['papayawhip'] = '#ffefd5';
Colornames['peachpuff'] = '#ffdab9';
Colornames['peru'] = '#cd853f';
Colornames['pink'] = '#ffc0cb';
Colornames['plum'] = '#dda0dd';
Colornames['powderblue'] = '#b0e0e6';
Colornames['purple'] = '#800080';
Colornames['red'] = '#ff0000';
Colornames['rosybrown'] = '#bc8f8f';
Colornames['royalblue'] = '#4169e1';
Colornames['saddlebrown'] = '#8b4513';
Colornames['salmon'] = '#fa8072';
Colornames['sandybrown'] = '#f4a460';
Colornames['seagreen'] = '#2e8b57';
Colornames['seashell'] = '#fff5ee';
Colornames['sienna'] = '#a0522d';
Colornames['silver'] = '#c0c0c0';
Colornames['skyblue'] = '#87ceeb';
Colornames['slateblue'] = '#6a5acd';
Colornames['slategray'] = '#708090';
Colornames['slategrey'] = '#708090';
Colornames['snow'] = '#fffafa';
Colornames['springgreen'] = '#00ff7f';
Colornames['steelblue'] = '#4682b4';
Colornames['tan'] = '#d2b48c';
Colornames['teal'] = '#008080';
Colornames['thistle'] = '#d8bfd8';
Colornames['tomato'] = '#ff6347';
Colornames['turquoise'] = '#40e0d0';
Colornames['violet'] = '#ee82ee';
Colornames['wheat'] = '#f5deb3';
Colornames['white'] = '#ffffff';
Colornames['whitesmoke'] = '#f5f5f5';
Colornames['yellow'] = '#ffff00';
Colornames['yellowgreen'] = '#9acd32';

function ie()
{
if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) return true;
else return false;
}

function lookup(value)
{
	value=value.toLowerCase();				//make the value lower case
	if (value=="transparent") return "transparent";
	if(Colornames[value]==undefined) return false;	//check if the colorname exists. if doesn't, output false
	else return(Colornames[value]);			//value exists. Output the hexadecimal color value ('#rrggbb)
}

function validate(obj)
{
	
	id = parseInt((obj.id).substring(1))+1;
	var parent = document.getElementById('div'+id).firstChild;
	var value;
	if(lookup(obj.value))
	{
		value=lookup(obj.value);
	}
	else if((obj.value.split(' ')).length==3) value = "rgb("+obj.value+")";
	else if(parseInt(obj.value,16))
	{
		value='#'+obj.value;
	}
	else value=obj.value;
	if(value!=undefined)
	{
		parent.style.backgroundColor=value;
		parent.parentElement.style.color=invert(value);
		var child = document.getElementById('buttons'+(id));
		if (!child) return;
		for (k=0; k<child.childNodes.length; k++)
		{
			if (child.childNodes[k].nodeName=="IMG")
			{
			src = child.childNodes[k].attributes.getNamedItem("src").value;
			child.childNodes[k].attributes.getNamedItem("src").value=src.replace(/[wb](?=\.png)/i,invert2(value));
			}
		}
	}
}
var popup;
function choosecolors()
{
	retval = window.showModalDialog('../colorbox.htm','','center:yes; scroll:no; dialogWidth: 450px; dialogHeight: 600px;');
	if(retval == undefined) retval = "";	
	return retval;
}

function invert(color)
{
	if(!color) return "#000000";
	mycolor=new Object();
	mycolor.red=parseInt(color.substring(1,3),16);
	mycolor.green=parseInt(color.substring(3,5),16);
	mycolor.blue=parseInt(color.substring(5,7),16);
	return((mycolor.red+mycolor.green+mycolor.blue)/3>=128? '#000000' : '#FFFFFF');
}


function invert2(color)
{
	var mycolor=new Object();
	mycolor.red=parseInt(color.substring(1,3),16);
	mycolor.green=parseInt(color.substring(3,5),16);
	mycolor.blue=parseInt(color.substring(5,7),16);
	return((mycolor.red+mycolor.green+mycolor.blue)/3>=128? 'b' : 'w');
}

function invert2short(color)
{
	var mycolor=new Object();
	if (color=='transparent') return "b";
	mycolor.red=parseInt(color.substring(1,2),16);
	mycolor.green=parseInt(color.substring(2,3),16);
	mycolor.blue=parseInt(color.substring(3,4),16);
	return((mycolor.red+mycolor.green+mycolor.blue)/3>=8? 'b' : 'w');
}

function invertshort(color)
{
	var mycolor=new Object();
	mycolor.red=parseInt(color.substring(1,2),16);
	mycolor.green=parseInt(color.substring(2,3),16);
	mycolor.blue=parseInt(color.substring(3,4),16);
	return((mycolor.red+mycolor.green+mycolor.blue)/3>=8? '#000000' : '#FFFFFF');
}

function Showcolors()
{
	var code, text, name;
	var i=0;
	code='<table style="width:100%;">';
	for(key in Colornames)
	{
		text = invert(Colornames[key]);
		name = key.charAt(0).toUpperCase()+key.substr(1);
		if(i%2==0) code+='<tr>';
		code+='<td style="text-align:right; cursor:hand;" onmouseover="window.status=this.value" onclick="rdiag(this)">'+name+'</td>'+
			'<td style="cursor:hand; background-color:'+Colornames[key]+'; color:'+text+'; text-align:center; border:solid 1px gray;" onclick="rdiag(this.previousSibling)">'+Colornames[key].toUpperCase()+'</td>';
		if(i%2==1) code+='</tr>';
		i++;
	}
	if(i%2==1) code+='</tr>';
	code+='</table>';
	document.body.innerHTML='<div style="width:100%; margin:0px; height:10%">'
				+'<h1>Complete Color-name reference</h1>'
				+'<p style="text-align:center;">Click on a colorname</p>'
				+'</div>'
				+'<div style="overflow:auto; margin:0px; width:100%; height:80%">'
   				+code
				+'</div>'
				+'<div style="width:100%; height:5%; margin:3px; text-align:center;">'
				+'Colors of the form "rrr bbb ggg", delimited by spaces, are also accepted'
				+'</div>';
}

function rdiag(obj)
{
	if(ie)
	{
		myname=obj.innerHTML;
		if(confirm('Do you want to use the color '+myname+'?'))
		{
		window.returnValue=obj.innerHTML;
		window.close();
		}
	}
}
