

//	Building a non-websafe color picker will take forever to build... NOT RECOMMENDED
//	For the option of non-websafe, I am providing an additional input tag.
aHexFull = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"];
aHexWebSafe = ["0", "3", "6", "9", "c", "f"];
aHex = aHexWebSafe;

var sTempInputVal;
var sTempInputValSelected;

function InitHexControls() {
	if (!document.getElementById) return;

	var aInput = document.getElementsByTagName('input');

	for (var i = 0; i < aInput.length; i++) {
		x = i;
		if (aInput[i].className == 'HexChooser') {
			aInput[i].onfocus = function() {
				sTempInputVal =  this.getAttribute('value');
				HexChooser(this.getAttribute('id'));
			}
			aInput[i].onblur = function() {
				//CloseHex(this.getAttribute('id'), sTempInputVal);
			}
		}
	}
}

function HexChooser(callerID) {
	if (document.getElementById('HexBlock')) {
		var node = document.getElementById('HexBlock');
		node.parentNode.removeChild(node);
	}
	ShowHex(callerID);
}

function CloseHex(callerID, passbackVal) { 
	//alert("Passed Back " + passbackVal);
	var node = document.getElementById('HexBlock');
	node.parentNode.removeChild(node);
	var node = document.getElementById(callerID);
	node.value = passbackVal;

	//	Set all "SelectedLabel" Label classes to "UnSelectedLabel"
	var aLabels = document.getElementsByTagName('label');
	for (var i = 0; i < aLabels.length; i++) {
		x = i;
		aLabels[i].setAttribute('className', 'UnSelectedLabel');
		aLabels[i].setAttribute('class', 'UnSelectedLabel');
	}

	//	Set all "SelectedHexChooser" Input classes to "HexChooser"
	var aInput = document.getElementsByTagName('input');
	for (var i = 0; i < aLabels.length; i++) {
		x = i;
		if ( (aInput[i].getAttribute('className') == 'SelectedHexChooser') || (aInput[i].getAttribute('class') == 'SelectedHexChooser')) {
			aInput[i].setAttribute('className', 'HexChooser');
			aInput[i].setAttribute('class', 'HexChooser');
			aInput[i].setAttribute('style', 'color: #'+passbackVal);
		}
	}
}

function ShowHex(callerID) {

	//	Set label of selected input to "SelectedLabel"
	var aLabels = document.getElementsByTagName('label');
	for (var i = 0; i < aLabels.length; i++) {
		x = i;
		if (aLabels[i].getAttribute('for') == callerID) {
			aLabels[i].setAttribute('className', 'SelectedLabel');
			aLabels[i].setAttribute('class', 'SelectedLabel');
		}
	}

	//	Set selected input to "SelectedHexChooser", backup value and set to ""
	var node = document.getElementById(callerID);
	node.setAttribute('className', 'SelectedHexChooser');
	node.setAttribute('class', 'SelectedHexChooser');
	sTempInputValSelected = node.value;
	node.value = "";

	var myBody=document.getElementsByTagName("body").item(0); 
	var myHexControl = document.createElement("div");
	myHexControl.setAttribute('id', 'HexBlock');
	myHexCancel = document.createElement("a");
	myHexCancel.setAttribute("href","javascript:CloseHex('" + callerID + "','" + sTempInputValSelected + "')");
	myHexCancelText = document.createTextNode("cancel");
	myHexCancel.appendChild(myHexCancelText);
	myHexTable = document.createElement("table");
	myHexTableHead = document.createElement("thead");
	myHexTableBody = document.createElement("tbody");
	myHexTable.appendChild(myHexTableHead);
	myHexTable.appendChild(myHexTableBody);
	myBody.appendChild(myHexControl);
	myHexControl.appendChild(myHexCancel);
	
	myHexDisclaimer = document.createElement("p");
	mmyHexDisclaimerText = document.createTextNode("NOTE: This is a work in progress, no IE yet.");
	myHexDisclaimer.appendChild(mmyHexDisclaimerText);
	myHexControl.appendChild(myHexDisclaimer);
	
	

	sHex = "";
	for (var rr = 0; rr < aHex.length; rr++) {
		sHex = "";
		myHexTableRow = document.createElement("tr");
		sRHex = aHex[rr]+aHex[rr];
				
		for (var gg = 0; gg < aHex.length; gg++) {
			sGHex = aHex[gg]+aHex[gg];

			for (var bb = 0; bb < aHex.length; bb++) {
				sBHex = aHex[bb]+aHex[bb];
				sHex = sRHex + sGHex + sBHex;

				myHexTableData = document.createElement("td");
				myHexTableDateLink = document.createElement("a");
				//myHexTableData.setAttribute("style","background-color: #" + sHex);
				myHexTableData.setAttribute("style","backgroundColor: #" + sHex);
				myHexTableData.setAttribute("bgColor","#" + sHex);
				sTempSelected = "("+sHex+")";
				myHexTableDateLink.setAttribute("href","javascript:CloseHex('"+callerID+"','"+sHex+"')");
				myHexTableDataText = document.createTextNode("\u00a0\u00a0\u00a0\u00a0\u00a0");
				//myHexTableDataText = document.createTextNode(sHex);
				myHexTableDateLink.appendChild(myHexTableDataText);
				myHexTableData.appendChild(myHexTableDateLink);
				myHexTableRow.appendChild(myHexTableData);
			}
		}
		myHexTableBody.appendChild(myHexTableRow);
	}
	myHexTableRow = document.createElement("tr");
	myHexTableData = document.createElement("td");
	myHexTableData.setAttribute("colspan",aHex.length);
	myHexTableDataText = document.createTextNode("Other:");
	myHexTableDataOther = document.createElement("input");
	myHexTableData.appendChild(myHexTableDataText);
	myHexTableData.appendChild(myHexTableDataOther);
	myHexTableRow.appendChild(myHexTableData);
	myHexTableBody.appendChild(myHexTableRow);
	
	myHexTable.appendChild(myHexTableBody);
	myHexControl.appendChild(myHexTable);
	myHexTable.setAttribute("border","0");
	myHexTable.setAttribute("cellpadding","0");
	myHexTable.setAttribute("cellspacing","0");
	sTempSelected = "";
}
/*window.onload = InitHexControls;*/
