var colArr = [[[]]];
var codeType = 0;
var codePrefix = "";
var maxCharNote = 0;
function outline(m,xx,yy,thickness, col1, col2) {
	if (m=="") m = document.getElementById("message").value;
	var retStr = "&nbsp;";
	//m = m.replace(/\|/g,"&#124;");

	var x = -thickness;
	var y = -thickness;
	while (y<=thickness) {
	while (x<=thickness) {
		retStr += "<span style='color:"+col2+";position:absolute; left:"+(x+xx)+"; top:"+(-y+yy)+";'>";
			var si = 0;
			for (i=1;i<colArr.length; i++ ) {
				var c1 = colArr[i][0];
				var c2 = colArr[i][1];
				var sL = colArr[i][2];
				retStr += "<span style='color:"+c2+";'>" + smiley(m.substring(si,sL+si)) + "</span>";
				si += (sL-0);
				}	
			retStr += "<span style='color:"+col2+";'>"+smiley(m.substring(si))+"</span>";
			retStr += "</span>";
		retStr += "<span style='color:"+col2+";position:absolute; left:"+(x+xx)+"; top:"+yy+";'>";
			var si = 0;
			for (i=1;i<colArr.length; i++ ) {
				var c1 = colArr[i][0];
				var c2 = colArr[i][1];
				var sL = colArr[i][2];
				retStr += "<span style='color:"+c2+";'>" + smiley(m.substring(si,sL+si)) + "</span>";
				si += (sL-0);
				}	
			retStr += "<span style='color:"+col2+";'>"+ smiley(m.substring(si))+"</span>";
			retStr += "</span>";
		retStr += "<span style='color:"+col2+";position:absolute; left:"+(x+xx)+"; top:"+(y+yy)+";'>";
			var si = 0;
			for (i=1;i<colArr.length; i++ ) {
				var c1 = colArr[i][0];
				var c2 = colArr[i][1];
				var sL = colArr[i][2];
				retStr += "<span style='color:"+c2+";'>" + smiley(m.substring(si,sL+si)) + "</span>";
				si += (sL-0);
				}	
			retStr += "<span style='color:"+col2+";'>"+smiley(m.substring(si))+"</span>";
			retStr += "</span>";

				x=x+1;
			}
			y=y+1;
		}

		retStr += "<span id='prevTopSpan' class='prevTop' style='color:"+col1+";position:absolute; left:"+xx+"; top:"+yy+";'>";
		var si = 0;
		for (i=1;i<colArr.length; i++ ) {
			var c1 = colArr[i][0];
			var c2 = colArr[i][1];
			var sL = colArr[i][2];
			retStr += "<span class='prevTop' style='color:"+c1+";'>" + smiley(m.substring(si,sL+si)) + "</span>";
			si += (sL-0);
		}	
		retStr += "<span class='prevTop' style='color:"+col1+";'>"+smiley(m.substring(si))+"</span>";
		retStr += "</span>";


	return retStr;
}

function addEmote(emote) {
 var m = document.getElementById("message");
 var b = document.getElementById('codes').bind;
 m.value += emote;
 b.value += emote;
 updatePreview(m.value);
 setCursor(m.value);
}

var Detector = function(){
	var h = document.getElementsByTagName("BODY")[0];
	var d = document.createElement("DIV");
	var s = document.createElement("SPAN");
	d.appendChild(s);
	d.style.fontFamily = "sans-serif";		
	s.style.fontFamily = "sans-serif";		
	s.style.fontSize   = "72px";			
	s.innerHTML        = "mmmmmmmmmml";	
	h.appendChild(d);
	var defaultWidth   = s.offsetWidth;	
	var defaultHeight  = s.offsetHeight;	
	h.removeChild(d);
	function test(font) {
		h.appendChild(d);
		var f = [];
		f[0] = s.style.fontFamily = font;
		f[1] = s.offsetWidth;				
		f[2] = s.offsetHeight;				
		h.removeChild(d);
		font = font.toLowerCase();
		if (font == "arial" || font == "sans-serif") {
			f[3] = true;	
		} else {
			f[3] = (f[1] != defaultWidth || f[2] != defaultHeight);
		}
		return f;
	}
	this.test = test;
}
var HSL = new Object();
var RGB = new Object();
var oRGB = new Object();
var mRGB = new Object();
var tempRGB = new Object();
RGB.R = RGB.G = RGB.B = 0;
tempRGB.R = tempRGB.G = tempRGB.B = 0;
oRGB.R = oRGB.G = oRGB.B = 0;
mRGB.R = mRGB.G = mRGB.B = 0;
HSL.H = HSL.S = HSL.L = 0;
var HEXCodes = new Array(256);
var k = 0;
var HEX = new Array("0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F");
for (i = 0; i < 16; i++) 
{	
	for (j = 0; j < 16; j++) 
	{		
		HEXCodes[k] = HEX[i] + HEX[j];
		k++;
	}
}
function checkUseOutline() {
 var useOut = document.getElementById('useOutline');
 if (useOut) {
	useOut.checked = true;
 }
}
function checkPreview() {
 var m = document.getElementById('codes').message.value;
	if (m) updatePreview(m);
	 else clearPreview();
}
function checkName() {
var n = document.getElementById('codes').name.value;
var b = document.getElementById('codes').bind; 
var phatText = document.getElementById('phatText');
var bindCode = document.getElementById('codes').bind.value;
var bindInst = document.getElementById('bindInst');
var codeInst = document.getElementById('codeInst');
var chatBox = document.getElementById('chatCommand');
 if (n=="") alert("Please enter a bind name or choose Get Code Only. Binds must have a name. The name can even be just one letter.");
	else {
		codePrefix = "/bind " + n + "=";
		if (bindCode.length>=5) {
			if (bindCode.substring(0,5)!="/bind") b.value = codePrefix + bindCode;
			}
		chatBox.innerHTML = "/" + n;
		bindInst.style.display = "";
		codeInst.style.display = "none";
		phatText.style.color = "#006600";
		phatText.innerHTML = "<em>Use this code to SAVE the bind for use any time:</em>";
		showDiv('bindDiv',1);
	}
}
function updateName() {
 var newName = "bind " + document.getElementById('codes').name.value + "=";
 var bindCode = document.getElementById('codes').bind;
 bindCode.value = bindCode.value.replace(/bind.*=/g, newName);
  codePrefix = "/" + newName;
}
function updatePreview(m) {
 var pDiv = document.getElementById('preview');
 var oCol = document.getElementById('outlineColor').style.backgroundColor;
 var mCol = document.getElementById('currentColor').style.backgroundColor;
 var useO = document.getElementById('useOutline').checked;
 var useM = document.getElementById('useMain').checked;
 if (useO)	{
		pDiv.innerHTML = outline(m,4,1,1, mCol, oCol);
		updateBind("currentColor",mCol);
		updateBind("outlineColor",oCol);
	} else { 
		if (useM) {
			pDiv.style.color=mCol;
			updateBind("currentColor",mCol);
			} else { 
				pDiv.style.color="black"; 
				updateBind("currentColor","0");
				}
	   var newHTML = "";
	   var si = 0;
	   for (i=1;i<colArr.length; i++ ) {
			var c1 = colArr[i][0];
			var sL = colArr[i][2];
			newHTML += "<span style='color: " + c1 + "'>" + m.substring(si,sL+si) + "</span>";
			si += (sL-0);
		}
	   if (m.length>si) newHTML += m.substring(si);
	   pDiv.innerHTML = smiley(newHTML);
	}
}

function smiley(m) {

	m = m.replace(/:D/g, "<img src='bigsmile.jpg' />");
	m = m.replace(/:\//g, "<img src='darn.jpg' />");
	m = m.replace(/>\(/g, "<img src='disgusted.jpg' />");
	m = m.replace(/:\(/g, "<img src='sad.jpg' />");
	m = m.replace(/\[-\(/g, "<img src='sorrow.jpg' />");
	m = m.replace(/;\)/g, "<img src='wink.jpg' />");
	m = m.replace(/\|-\)/g, "<img src='zzz.jpg' />");
	m = m.replace(/:angel/g, "<img src='angel.jpg' />");
	m = m.replace(/:brb/g, "<img src='brb.gif' />");
	m = m.replace(/:rainbow/g, "<img src='rainbow.gif' />");
	m = m.replace(/:duck/g, "<img src='duck.gif' />");
	m = m.replace(/:afk/g, "<img src='afk.gif' />");
	m = m.replace(/:gstar/g, "<img src='gstar.jpg' />");
	m = m.replace(/X-O/g, "<img src='dead.jpg' />");
	m = m.replace(/>D/g, "<img src='evillaugh.jpg' />");
	m = m.replace(/:-L/g, "<img src='sidemouthdrop.jpg' />");
	m = m.replace(/:\|/g, "<img src='blankstare.jpg' />");
	m = m.replace(/:x/g, "<img src='taped.jpg' />");
	m = m.replace(/:-s/g, "<img src='worry.jpg' />");
	m = m.replace(/:lol/g, "<img src='lol.jpg' />");
	m = m.replace(/:devil/g, "<img src='devil.jpg' />");
	m = m.replace(/:music/g, "<img src='music.gif' />");
	m = m.replace(/8-\)/g, "<img src='cool.jpg' />");
	m = m.replace(/X-P/g, "<img src='tongue.jpg' />");
	m = m.replace(/:@/g, "<img src='jawdrop.jpg' />");
	m = m.replace(/:\)/g, "<img src='smile.jpg' />");
	m = m.replace(/:-Y/g, "<img src='smoking.jpg' />");
	m = m.replace(/>-@/g, "<img src='urked.jpg' />");
	m = m.replace(/X-\(/g, "<img src='mad.jpg' />");
	m = m.replace(/:bandit/g, "<img src='bandit.jpg' />");
	m = m.replace(/:afk/g, "<img src='afk.jpg' />");
	m = m.replace(/:rstar/g, "<img src='rstar.jpg' />");
	m = m.replace(/:stars/g, "<img src='stars.gif' />");
	m = m.replace(/:star/g, "<img src='star.jpg' />");
	m = m.replace(/:bstar/g, "<img src='bstar.jpg' />");
	m = m.replace(/:-o/g, "<img src='ohdear.jpg' />");


		

	return m;
}

function clearPreview() {
var pDiv = document.getElementById('preview');
var m = document.getElementById('codes').message;
var b = document.getElementById('codes').bind;
var n = document.getElementById('codes').name;
if (pDiv) pDiv.innerHTML = "&nbsp;";
if (m) m.value = "";
if (b) b.value = "";
//if (n) n.value = "";
colArr = [[[]]];
}
function addSegment(c1,c2,mLen) {
	if (mLen=='') mLen = 0;
	var cLen = colArr.length;
	if (cLen>0) colArr.push([]);
	colArr[cLen][0] = c1;
	colArr[cLen][1] = c2;
	colArr[cLen][2] = mLen;	
}

function lockSegment() {
//alert(document.getElementById("preview").clientHeight);
//alert(document.getElementById("preview").firstChild.scrollHeight);
 var m = document.getElementById("message").value;
 var b = document.getElementById("bind").value;
 var mLen = m.length;
 for (i=1;i<colArr.length; i++ ) {
	 mLen -= colArr[i][2];
	}
 var pDiv = document.getElementById('preview');
 var oCol = document.getElementById('outlineColor').style.backgroundColor;
 var mCol = document.getElementById('currentColor').style.backgroundColor;
 var useO = document.getElementById('useOutline').checked;
 var useM = document.getElementById('useMain').checked;
 if (useO)	{
		addSegment(mCol,oCol,mLen);
	} else { if (useM) {addSegment(mCol,'',mLen);} 
				else { addSegment('#000','',mLen); }
	}
}

function testArr() {
  for (i=1;i<colArr.length; i++ ) {
	alert(colArr[i]);
  }
  //alert(document.getElementById('preview').innerHTML);
  //alert(document.getElementById('codes').message.value.length);
  //alert(oC);
  //var pSet = document.getElementById('Preset1');
  //var pM = pSet.innerHTML;
   var b = document.getElementById("bind");
   var pDiv = document.getElementById('preview');

   b.value = pDiv.innerHTML;
}

function initPresets() {

  var psArr = [[[[]]]];
  psArr.push(["Blue/White","0000CD","ffffff",32]);
  psArr.push(["Red/White","CC0000","ffffff",32]);
  psArr.push(["White/Black","ffffff","000000",32]);
  psArr.push(["Pink/Purple","ffb3da","800080",32]);
  psArr.push(["Navy/Silver","00008a","d4d4d4",32]);
  psArr.push(["Yellow/Green","FFFF99","006400",32]);
  psArr.push(["Tan/Brown","F5DEB3","A0522D",32]);
  psArr.push(["Bright Green","99ff99","006666",32]);
  psArr.push(["Black/White","000000","ffffff",32]);
  psArr.push(["Pink/Black","ff99ff","000000",32]);
  psArr.push(["Bright Blue","0000CD","66ffff",32]);
  psArr.push(["Fire Red","CC0000","FF9933",40]);
  psArr.push(["Bumblebee","FFFF00","000000",32]);
  psArr.push(["Radioactive","006400","7CFC00",32]);
  psArr.push(["Purple Glow","800080","ff80e6",32]);
  psArr.push(["Sandbar","A0522D","F5DEB3",32]);
  psArr.push(["Vanilla","ffffe5","c28719",32]);

  var tbl = document.getElementById('Presets');
  var lastRow = tbl.rows.length;

 for (iii=1;iii<psArr.length;iii++) {
  var lastRow = tbl.rows.length;
  var row = tbl.insertRow(lastRow);
  var cell = row.insertCell(0);
  //var newHTML = "";
  var newHTML = '<a href="javascript:void(0);" onclick="usePreset(\'' +  psArr[iii][1] + '\',\'' + psArr[iii][2] + '\')">';
  newHTML += outline(psArr[iii][0],psArr[iii][3],1,1, psArr[iii][1], psArr[iii][2]);
  newHTML += "</a>";
  cell.innerHTML = newHTML;
 }

 var fDiv = document.getElementById("fontWarning");
 var d = new Detector();
 var hasFont = d.test('Windsor Bold')[3];
 //alert(hasFont);
 if (! hasFont) fDiv.style.display = "";
  else fDiv.style.display = "none";

}
function usePreset(m,o) { 
 if (m.length!=6 || o.length!=6) {alert("Error: usePreset function only accepts 6 character hex codes. " + m + " : " + o); return;}
 var colType = document.getElementById('codes').colType;

 colType[1].checked = true;
 tempRGB.R = HexToR(o);
 tempRGB.G = HexToG(o);
 tempRGB.B = HexToB(o);
 ChangeColors(tempRGB.R,tempRGB.G,tempRGB.B,-1);


 colType[0].checked = true;
 tempRGB.R = HexToR(m);
 tempRGB.G = HexToG(m);
 tempRGB.B = HexToB(m);
 ChangeColors(tempRGB.R,tempRGB.G,tempRGB.B,-1);
}

function HexToR(h) {return parseInt((cutHex(h)).substring(0,2),16)}
function HexToG(h) {return parseInt((cutHex(h)).substring(2,4),16)}
function HexToB(h) {return parseInt((cutHex(h)).substring(4,6),16)}
function cutHex(h) {return (h.charAt(0)=="#") ? h.substring(1,7):h}

function getCode(n) {
var b = document.getElementById('codes').bind;
var phatText = document.getElementById('phatText');
var bindInst = document.getElementById('bindInst');
var codeInst = document.getElementById('codeInst');
var bindCode = document.getElementById('codes').bind.value;
var bindName = document.getElementById('codes').name.value;
if (n!="") codeType = n;
 else n = codeType;
if (n==1) {
	showDiv('bindName',1);
	} else {
	bindInst.style.display = "none";
	codeInst.style.display = "";
	phatText.style.color = "red";
	phatText.innerHTML = "<em>Here is the code for one-time use without binding:</em>";
	showDiv('bindDiv',1);
	showDiv('bindName',2);
	codePrefix = "";
	if (bindCode.length>=5) {
		if (bindCode.substring(0,5)=="/bind") b.value = b.value.replace(/\/bind.*=/g, "");
		}
	}
}
function ChangeColors(r,g,b,standard) {
	var colType = 'currentColor';
	var useBox = document.getElementById('useMain');
	var m = document.getElementById('codes').message.value;
	if (document.getElementById('codes').colType[1].checked) {colType = 'outlineColor'; useBox = document.getElementById('useOutline');}
	//alert(colType);
	if (r>255) r=255;
	if (g>255) g=255;
	if (b>255) b=255;
	if (r<0) r=0;
	if (g<0) g=0;
	if (b<0) b=0;
  if(!(r>=0)&&!(r<=255)) r=0
  if(!(g>=0)&&!(g<=255)) g=0
  if(!(b>=0)&&!(b<=255)) b=0
  RGB.R=r;
  RGB.G=g;
  RGB.B=b;
  if (colType=="currentColor") {mRGB.R=r;mRGB.G=g;mRGB.B=b;}
   else {oRGB.R=r;oRGB.G=g;oRGB.B=b;}
	var newColor = HEXCodes[r]+HEXCodes[g]+HEXCodes[b];
	document.getElementById(colType).style.backgroundColor= "#"+newColor;
	if (m) updatePreview(m);
	 else updatePreview("Test Preview");
	useBox.checked = true;
	//if (standard != -1) bindColor = standard;
	//else bindColor = newColor;
	updateBind(colType,newColor);
	setCursor(m);
}
var mC = ""; var oC = "";
function updateBind(t,c) {
	var bindBox = document.getElementById('codes').bind;
	var m = document.getElementById('codes').message.value;
	var bindName = document.getElementById('codes').name.value;
	m=m.replace("Test Preview","");
	var useOutline = document.getElementById('useOutline');
	var newCode = codePrefix;
	var lastC1 = "";
	var lastC2 = "";
	var si = 0;
	for (i=1;i<colArr.length; i++ ) {
		var c1 = fixColor(colArr[i][0]);
		var c2 = fixColor(colArr[i][1]);
		var sL = colArr[i][2];
		if (c1!="" && c1 != lastC1) newCode += "~[c" + c1 + "]";
		if (c2!="" && c2 != lastC2) newCode += "~[j" + c2 + "]";
		if ((sL-0)>0) newCode += m.substring(si,sL+si);
		si += (sL-0);
		lastC1 = c1;
		lastC2 = c2;
		}	
	c=fixColor(c);
	if (t=="currentColor") mC = c;
	 else oC = c;

	if (mC != lastC1) newCode += "~[c" + mC + "]";
	if (oC != lastC2 && useOutline.checked==true) newCode+= "~[j" + oC + "]";

	newCode += m.substring(si);
	bindBox.value=newCode;
	if (newCode.length > 100) {
	   if (maxCharNote==0) {
	     alert("Your bind has exceeded that maximum length that Hardwood allows (100 characters). If you have a long command, you might want to consider using the Standard colors in place of custom colors, as they require fewer characters.");
		 maxCharNote=1;
		 //setTimeout ("maxCharNote=0;",2000);
		}
	} else maxCharNote=0;
}
function Lighten() {
	var colType = 'currentColor';
	if (document.getElementById('codes').colType[1].checked) {colType = 'outlineColor';}
	LightenCol(colType)
}
function Darken() {
	var colType = 'currentColor';
	if (document.getElementById('codes').colType[1].checked) {colType = 'outlineColor';}
	DarkenCol(colType)
}
function LightenCol(colType) { 
 if (colType=='currentColor') RGBtoHSL(mRGB.R,mRGB.G,mRGB.B);
  else RGBtoHSL(oRGB.R,oRGB.G,oRGB.B);
  HSL.L=HSL.L+5;
  if(HSL.L>100) HSL.L=100;
	HSLtoRGB(HSL.H,HSL.S,HSL.L);
  ChangeColors(tempRGB.R,tempRGB.G,tempRGB.B,-1);
}

function DarkenCol(colType) {
 if (colType=='currentColor') RGBtoHSL(mRGB.R,mRGB.G,mRGB.B);
  else RGBtoHSL(oRGB.R,oRGB.G,oRGB.B);
  HSL.L=HSL.L-5;
  if(HSL.L<0) HSL.L=0;
	HSLtoRGB(HSL.H,HSL.S,HSL.L);
  ChangeColors(tempRGB.R,tempRGB.G,tempRGB.B,-1);
}

function fixColor(c) {
 c=c.replace("#","").toLowerCase();
 switch(c) {
 case "000":
	c="0";break;    
 case "000000":
	c="0";break;
  case "fff":
	c="15";break;
 case "ffffff":
	c="15";break;
 case "00008b":
	c="1";break;
  case "006400":
	c="2";break;
 case "008080":
	c="3";break;
  case "8b0000":
	c="4";break;
   case "800080":
	c="5";break;
  case "a0522d":
	c="6";break;
   case "d3d3d3":
	c="7";break;
  case "a9a9a9":
	c="8";break;
   case "0000cd":
	c="9";break;
  case "7cfc00":
	c="10";break;
   case "33ffff":
	c="11";break;
  case "cc0000":
	c="12";break;
   case "ff00cc":
	c="13";break;
  case "ffff00":
	c="14";break;
   case "f5deb3":
	c="16";break;
  case "ffff99":
	c="17";break;
    case "ff9933":
	c="18";break;
	}
	return c;
}

function setCursor(m) {
	var t = document.codes.message;
	if (t.createTextRange) {
		t.focus();
		var range = t.createTextRange();
		range.collapse(true);
		range.moveEnd('character', m.length);
		range.moveStart('character', m.length);
		range.select();
	}
}
function HSLtoRGB(H,S,L) 
{
//alert(H + ":" + S + ":" + L);
	var p1,p2;
  
	L/=100;
	S/=100;
	if (L<=0.5) p2=L*(1+S);
	else p2=L+S-(L*S);
	p1=2*L-p2;
	if (S==0) 
	{
		tempRGB.R=L; 
		tempRGB.G=L;
		tempRGB.B=L;
	} 
	else 
	{
		tempRGB.R=FindRGB(p1,p2,H+120);
		tempRGB.G=FindRGB(p1,p2,H);
		tempRGB.B=FindRGB(p1,p2,H-120);
	}
	tempRGB.R *= 255;
	tempRGB.G *= 255;
	tempRGB.B *= 255;
	tempRGB.R=Math.round(tempRGB.R);
	tempRGB.G=Math.round(tempRGB.G);
	tempRGB.B=Math.round(tempRGB.B);
}

function FindRGB(q1,q2,hue) 
{
	if (hue>360) hue=hue-360;
	if (hue<0) hue=hue+360;
	if (hue<60) return (q1+(q2-q1)*hue/60);
	else if (hue<180) return(q2);
	else if (hue<240) return(q1+(q2-q1)*(240-hue)/60);
	else return(q1);
}

function RGBtoHSL(r,g,b)
{
	var Min=0;
	var Max=0;
	r=(eval(r)/51)*.2;
	g=(eval(g)/51)*.2;
	b=(eval(b)/51)*.2;

	if (eval(r)>=eval(g))
		Max=eval(r);
	else
		Max=eval(g);
	if (eval(b)>eval(Max))
		Max=eval(b);
	
	if (eval(r)<=eval(g))
		Min=eval(r);
	else
		Min=eval(g);
	if (eval(b)<eval(Min))
		Min=eval(b);

	HSL.L=(eval(Max)+eval(Min))/2;
	if (eval(Max)==eval(Min)) 
	{
		HSL.S=0;
		HSL.H=0;
	} 
	else 
	{
		if (HSL.L < .5)
			HSL.S=(eval(Max)-eval(Min))/(eval(Max)+eval(Min));
		if (HSL.L >= .5)
			HSL.S=(eval(Max)-eval(Min))/(2-eval(Max)-eval(Min));
		if (r==Max)
			HSL.H = (eval(g)-eval(b))/(eval(Max)-eval(Min));
		if (g==Max)
			HSL.H = 2+((eval(b)-eval(r))/(eval(Max)-eval(Min)));
		if (b==Max)
			HSL.H = 4+((eval(r)-eval(g))/(eval(Max)-eval(Min)));
	}
	HSL.H=Math.round(HSL.H*60);
	if(HSL.H<0) HSL.H += 360;
	if(HSL.H>=360) HSL.H -= 360;
	HSL.S=Math.round(HSL.S*100);
	HSL.L=Math.round(HSL.L*100);
}

function DrawPalette()
{
  var outer, middle, inner=255;
  
  document.write('<div ID="palette">');
  document.write('<table cellpadding=0 cellspacing=1 border=0 bgcolor="#000000">');
  document.write('<tr>');
    
  for (outer = 255; outer >= 0; outer-=51)
  {
    for (middle = 255; middle >= 0; middle-=51)
    {
      for (inner = 255; inner >= 0; inner-=51)
      {
        tR=HEXCodes[255 - outer];
  		  tG=HEXCodes[255 - middle];
  		  tB=HEXCodes[255 - inner];
  
        document.write('<td height="11" width="11" bgcolor="#'+tR+tG+tB+'"><a href="#" onclick="ChangeColors('+(255 - outer)+','+(255 - middle)+','+(255 - inner)+',-1); return false;"><img src="clear.gif" border="0" width="11" height="11" /></a></td>');
      }
    }
    if(outer!=0) document.write('</tr><tr>');
  }
  document.write('</tr>');
  document.write('</table>');
  document.write('</div>');
}
function updateFont(f) {
var d = new Detector();
var hasFont = d.test(f)[3];
alert(hasFont);
 var preDiv = document.getElementById("preview");
 if (preDiv) preDiv.style.fontFamily=f;
}
function showDiv(div,f) {
 var theDiv = document.getElementById(div);
 if (f==0) {
	if (theDiv.style.display=="") theDiv.style.display="none";
	 else theDiv.style.display="";
	} else {
	if (f==1) theDiv.style.display="";
	 else theDiv.style.display="none";
	}
}
var phatArr = [[]];
var phatIdx = 0;
phatArr[0][0] = "40px";
phatArr[0][1] = "ow !";
phatArr.push([]);phatArr[1][0] = "40px";phatArr[1][1] = "ow !";
phatArr.push([]);phatArr[2][0] = "40px";phatArr[2][1] = "hmm...";
phatArr.push([]);phatArr[3][0] = "38px";phatArr[3][1] = "<img src='disgusted.gif' />";
phatArr.push([]);phatArr[4][0] = "32px";phatArr[4][1] = "<small>ok, enough <br />with the poking</small>";
phatArr.push([]);phatArr[5][0] = "40px";phatArr[5][1] = "hmm...";
function pokePhat() {
 var cDiv = document.getElementById("phatComment");
 var pImg = document.getElementById("phatPic");
 if (phatIdx>=phatArr.length) { 
	 //phatIdx = 0;
	  if (pImg.src) {
		  pImg.src = "PhatRedShield_122.gif";
		  var sWav = document.metalSound;
		  if (sWav) sWav.Play();
		  }
	} else {
	 cDiv.style.marginTop = phatArr[phatIdx][0];
	 cDiv.innerHTML = phatArr[phatIdx][1];
	 showDiv("phatBubble",1);
	 setTimeout ("showDiv('phatBubble',2)",1200);
	 phatIdx++;
	}
}

