var letter_set_descriptions = new Array();

letter_set_descriptions["blush_noise"] = "The selected letter set is copyrighted by <a href=http://glittergraphicsnow.com target=_blank rel=nofollow>glittergraphicsnow</a>.";
letter_set_descriptions["flower"] = "The selected letter set is copyrighted by <a href=http://glittergraphicsnow.com target=_blank rel=nofollow>glittergraphicsnow</a>.";
letter_set_descriptions["doll"] = "The selected letter set is copyrighted by <a href=http://glittergraphicsnow.com target=_blank rel=nofollow>glittergraphicsnow</a>.";
letter_set_descriptions["dolldev"] = "Devil Dolls!";

function select_letter_set(label)
{
    var ob = document.getElementById("letter_set_label");
    ob.value = label;

    update_text_form();
    update_generated_code();
    update_text_description(label);

    return false;
}

function update_text_form()
{
    var ob = document.getElementById("text_form");
    var disp = document.getElementById("text_display");

    disp.innerHTML = generate_code(ob.value);
}

function update_text_description(label)
{
    var ob = document.getElementById("text_description");
    var description = letter_set_descriptions[label];
    if(!description)
        description = "";

    ob.innerHTML = description;
}

function update_generated_code()
{
    var ob = document.getElementById("generated_code");
    var ob2 = document.getElementById("generated_code2");

    if(ob)
        ob.value = "Font updated, please click 'Generate Code' again!";

    if(ob2)
        ob2.value = "Font updated, please click 'Generate Code' again!";
}

function generate_code(text)
{
    str = "";

    label = document.getElementById("letter_set_label");

    for(i = 0; i < text.length; i++)
    {
        ch = text.charAt(i).toLowerCase();

        if(ch < 'a' || ch > 'z')
            str += "<img src=\"/images/generator/empty.gif\" width=\"20\" height=\"1\">";
        else
            str += "<img src=\"/images/generator/" + label.value + "/" + ch + ".gif\">";
    }

    str += "<div style='position: absolute; top: 0px; left: 0px; width: 100%; height: 100%;'>";
    str += "<table cellpadding=0 cellspacing=0 border=0 width=100% height=100%>";
    str += "<tr><td><img src=/images/generator/empty.gif width=200 height=10></td></tr>";
    str += "</table>";
    str += "</div>";

//    str += "</marquee>";

    return str;
}

var colors = Array(
"#000000", "#000033", "#000066", "#000099", "#0000cc", "#0000ff", "#330000", "#330033", "#330066", "#330099", "#3300cc", "#3300ff", "#660000", "#660033",
"#660066", "#660099", "#6600cc", "#6600ff", "#003300", "#003333", "#003366", "#003399", "#0033cc", "#0033ff", "#333300", "#333333", "#333366", "#333399",
"#3333cc", "#3333ff", "#663300", "#663333", "#663366", "#663399", "#6633cc", "#6633ff", "#006600", "#006633", "#006666", "#006699", "#0066cc", "#0066ff",
"#336600", "#336633", "#336666", "#336699", "#3366cc", "#3366ff", "#666600", "#666633", "#666666", "#666699", "#6666cc", "#6666ff", "#009900", "#009933",
"#009966", "#009999", "#0099cc", "#0099ff", "#339900", "#339933", "#339966", "#339999", "#3399cc", "#3399ff", "#669900", "#669933", "#669966", "#669999",
"#6699cc", "#6699ff", "#00cc00", "#00cc33", "#00cc66", "#00cc99", "#00cccc", "#00ccff", "#33cc00", "#33cc33", "#33cc66", "#33cc99", "#33cccc", "#33ccff",
"#66cc00", "#66cc33", "#66cc66", "#66cc99", "#66cccc", "#66ccff", "#00ff00", "#00ff33", "#00ff66", "#00ff99", "#00ffcc", "#00ffff", "#33ff00", "#33ff33",
"#33ff66", "#33ff99", "#33ffcc", "#33ffff", "#66ff00", "#66ff33", "#66ff66", "#66ff99", "#66ffcc", "#66ffff", "#990000", "#990033", "#990066", "#990099",
"#9900cc", "#9900ff", "#cc0000", "#cc0033", "#cc0066", "#cc0099", "#cc00cc", "#cc00ff", "#ff0000", "#ff0033", "#ff0066", "#ff0099", "#ff00cc", "#ff00ff",
"#993300", "#993333", "#993366", "#993399", "#9933cc", "#9933ff", "#cc3300", "#cc3333", "#cc3366", "#cc3399", "#cc33cc", "#cc33ff", "#ff3300", "#ff3333",
"#ff3366", "#ff3399", "#ff33cc", "#ff33ff", "#996600", "#996633", "#996666", "#996699", "#9966cc", "#9966ff", "#cc6600", "#cc6633", "#cc6666", "#cc6699",
"#cc66cc", "#cc66ff", "#ff6600", "#ff6633", "#ff6666", "#ff6699", "#ff66cc", "#ff66ff", "#999900", "#999933", "#999966", "#999999", "#9999cc", "#9999ff",
"#cc9900", "#cc9933", "#cc9966", "#cc9999", "#cc99cc", "#cc99ff", "#ff9900", "#ff9933", "#ff9966", "#ff9999", "#ff99cc", "#ff99ff", "#99cc00", "#99cc33",
"#99cc66", "#99cc99", "#99cccc", "#99ccff", "#cccc00", "#cccc33", "#cccc66", "#cccc99", "#cccccc", "#ccccff", "#ffcc00", "#ffcc33", "#ffcc66", "#ffcc99",
"#ffcccc", "#ffccff", "#99ff00", "#99ff33", "#99ff66", "#99ff99", "#99ffcc", "#99ffff", "#ccff00", "#ccff33", "#ccff66", "#ccff99", "#ccffcc", "#ccffff",
"#ffff00", "#ffff33", "#ffff66", "#ffff99", "#ffffcc", "#ffffff");
var UpdatedColorId;
var oColorPickerId = "color_picker";
var oColorPicker;
var holdColorValue;

function InitColorPicker(){
	oColorPicker = pGetElementById(oColorPickerId);

	var ileft; var itop;
	ileft = 2;
	itop = 2;
	for (i = 0; i <= colors.length; i++){

		var oDiv = document.createElement("div");
		oDiv.style.left = ileft + "px";
		oDiv.style.top = itop + "px";
		oDiv.style.backgroundColor = colors[i];
		oDiv.onmouseover = function() { update_color(this.style.backgroundColor);};
		oDiv.onclick = function() {
			holdColorValue = pGetElementById("color_form_" + UpdatedColorId).value;
			oColorPicker.style.visibility = "hidden";
		};
		oColorPicker.appendChild(oDiv);

		if (ileft == 189) {
			ileft = 2;
			itop += 11;
		}
		else
			ileft += 11;
	}

	oColorPicker.onmouseout = function(e) {
		pGetElementById("color_form_" + UpdatedColorId).value = holdColorValue;
		update_color_shower(holdColorValue);

		var mCur = mousePageXY(e);

		if ((mCur.x < oColorPicker.style.left.replace("px", "")) || (mCur.x - 200> oColorPicker.style.left.replace("px", "")))
			oColorPicker.style.visibility = "hidden";

		if ((mCur.y < oColorPicker.style.top.replace("px", "")) || (mCur.y - 135> oColorPicker.style.top.replace("px", "")))
			oColorPicker.style.visibility = "hidden";
	};
}

function ShowColorPicker(updatedId, oClicked) {
    UpdatedColorId = updatedId;

    if(oColorPicker.style.visibility == "hidden" || oColorPicker.style.visibility == ""){
    	var pos = getAbsolutePos(oClicked);
    	oColorPicker.style.left = (pos.x + 0) + "px";
		oColorPicker.style.top = (pos.y + 15) + "px";
        oColorPicker.style.visibility = "visible";
        holdColorValue = pGetElementById("color_form_" + UpdatedColorId).value;
    }
}

function update_color_shower(bg){
	try{
	    var obj = pGetElementById("color_shower_" + UpdatedColorId);
	    obj.style.background = bg;
    }
    catch(e){}
}

function update_color_form(bg){
    ob = pGetElementById("color_form_" + UpdatedColorId);
    ob.value = bg;
}

function update_color(bg){
    update_color_shower(bg.toString());
    if (bg.toString().toLowerCase().indexOf("rgb") != -1) bg = rgbConvert(bg);
    update_color_form(bg);
}

function pGetElementById(id){
    if (document.getElementById)
		return document.getElementById(id);
	else if(document.all)
		return document.all[id];
	else if(eval && self){
		eval("var e=self."+id+";");
		return e;
	}
	else if(window.execScript && self){
		window.execScript("var e=self."+id+";", "JavaScript");
		return e;
	}
}
function getAbsolutePos(el){
	var r = { x: el.offsetLeft, y: el.offsetTop };
	if (el.offsetParent)	{
		var tmp = getAbsolutePos(el.offsetParent);
		r.x += tmp.x;
		r.y += tmp.y;
	}
	if (navigator.appName == "Netscape") {
		r.y -=0;
	}
	return r;
}

function mousePageXY(e){
  var x = 0, y = 0;

  if (!e) e = window.event;

  if (e.pageX || e.pageY) {
    x = e.pageX;
    y = e.pageY;
  }
  else if (e.clientX || e.clientY) {
    x = e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft) - document.documentElement.clientLeft;
    y = e.clientY + (document.documentElement.scrollTop || document.body.scrollTop) - document.documentElement.clientTop;
  }
  return {"x":x, "y":y};
}
function rgbConvert(str) {
   str = str.replace(/rgb\(|\)/g, "").split(",");
   str[0] = parseInt(str[0], 10).toString(16).toLowerCase();
   str[1] = parseInt(str[1], 10).toString(16).toLowerCase();
   str[2] = parseInt(str[2], 10).toString(16).toLowerCase();
   str[0] = (str[0].length == 1) ? '0' + str[0] : str[0];
   str[1] = (str[1].length == 1) ? '0' + str[1] : str[1];
   str[2] = (str[2].length == 1) ? '0' + str[2] : str[2];
   return ('#' + str.join(""));
}