
//global variables
var current_picker_win = "";
var current_picker_hex = "";
var current_img_url = "";

var current_bgcolor_for_grtool = "";
var current_bgcolor_for_grtool_mo = "";
var current_bgimage_for_grtool = "";
var current_bgimage_for_grtool_mo = "";
var current_gradient_string = "";
var current_gradient_string_mo = "";
var gradient_REGorMO = "";

var universal_error_flag = 0;
var dynamic_update_flag = 0;
var fontsize_warned = 0;
var errorBoxColor = "#ee4444";
var errorFontColor = "#ffffff";

var filter_enabled_flag = "no";



//button factory boxes
var button_factory_box_array = new Array();
var ibox = 0;
button_factory_box_array[ibox++] = "set_text";
button_factory_box_array[ibox++] = "set_pagebackground";
button_factory_box_array[ibox++] = "set_pagebackgroundimage";
button_factory_box_array[ibox++] = "set_fontsize";
button_factory_box_array[ibox++] = "set_fontcolor";
button_factory_box_array[ibox++] = "set_buttonheight";
button_factory_box_array[ibox++] = "set_buttonwidth";
button_factory_box_array[ibox++] = "set_backgroundcolor";
button_factory_box_array[ibox++] = "set_backgroundimage";
button_factory_box_array[ibox++] = "set_bordercolor";
button_factory_box_array[ibox++] = "set_borderwidth";
button_factory_box_array[ibox++] = "set_bordercolor_top";
button_factory_box_array[ibox++] = "set_borderwidth_top";
button_factory_box_array[ibox++] = "set_bordercolor_bottom";
button_factory_box_array[ibox++] = "set_borderwidth_bottom";
button_factory_box_array[ibox++] = "set_bordercolor_left";
button_factory_box_array[ibox++] = "set_borderwidth_left";
button_factory_box_array[ibox++] = "set_bordercolor_right";
button_factory_box_array[ibox++] = "set_borderwidth_right";
button_factory_box_array[ibox++] = "set_titletext";


button_factory_box_array[ibox++] = "mo_set_fontcolor";
button_factory_box_array[ibox++] = "mo_set_backgroundcolor";
button_factory_box_array[ibox++] = "mo_set_backgroundimage";
button_factory_box_array[ibox++] = "mo_set_bordercolor";
button_factory_box_array[ibox++] = "mo_set_bordercolor_top";
button_factory_box_array[ibox++] = "mo_set_bordercolor_bottom";
button_factory_box_array[ibox++] = "mo_set_bordercolor_left";
button_factory_box_array[ibox++] = "mo_set_bordercolor_right";

function makeChanges()
{
   //un-highlight errors
   for (var i = 0; i < button_factory_box_array.length; i++)
   {
      unhighlightError("window.document.button_factory." + button_factory_box_array[i]);
   }


   //set page background
   if(window.document.button_factory.set_pagebackground.value != "")
   {
      if(testHexCode(window.document.button_factory.set_pagebackground.value) == "good")
      {
         window.document.getElementById('testbutton_table').style.backgroundColor = "#" + window.document.button_factory.set_pagebackground.value;
      }
      else
      {
         highlightError("window.document.button_factory.set_pagebackground");
         alert("Page background does not appear to be a valid hex code.");
      }
   }
   else
   {
      window.document.getElementById('testbutton_table').style.backgroundColor = "#FFFFFF";
   }


   //set pagebackground image
   if(window.document.button_factory.set_pagebackgroundimage.value != "")
   {
      window.document.getElementById('testbutton_table').style.backgroundImage = "url(" + window.document.button_factory.set_pagebackgroundimage.value + ")";
   }
   else
   {
      window.document.getElementById('testbutton_table').style.backgroundImage = "";
   }



   //set text
   if(window.document.button_factory.set_text.value != "")
   {
      var errflag = 0;
      var mystring = window.document.button_factory.set_text.value;
      for (var i = 0; i < mystring.length; i++)
      {
         if(mystring.charAt(i) == '"') { errflag++; }
      }
      if(errflag > 0)
      {
         highlightError("window.document.button_factory.set_text");
         alert("Your button text contains a double quote...\"\n\nThis can cause annoying problems.\nPlease change it to two single quotes...\'\'\n\nLooks almost identical and a lot less headaches.");
      }
      else
      {
         window.document.testbutton_form.testbutton.value = window.document.button_factory.set_text.value;
      }
   }
   else
   {
      highlightError("window.document.button_factory.set_text");
      alert('You should really specify some text for the button.\n\nI suppose if you really, really, really want no text I\'ll let you just enter a blank space... that will suffice.');
      window.document.button_factory.set_text.value = "Sample";
      window.document.testbutton_form.testbutton.value = window.document.button_factory.set_text.value;
   }


   //set title text
   if(window.document.button_factory.set_titletext.value != "")
   {
      var errflag = 0;
      var mystring = window.document.button_factory.set_titletext.value;
      for (var i = 0; i < mystring.length; i++)
      {
         if(mystring.charAt(i) == '"') { errflag++; }
      }
      if(errflag > 0)
      {
         highlightError("window.document.button_factory.set_titletext");
         alert("Your title text contains a double quote - \"\n\nThis can cause annoying problems.\nPlease change it to two single quotes - \'\'\n\nLooks almost identical and a lot less headaches.");
      }
      else
      {
         window.document.testbutton_form.testbutton.title = window.document.button_factory.set_titletext.value;
      }
   }
   else
   {
      window.document.testbutton_form.testbutton.title = "";
   }



   //set font name
   if(window.document.button_factory.set_fontfamily.value != "")
   {
      window.document.testbutton_form.testbutton.style.fontFamily = window.document.button_factory.set_fontfamily.value;
   }
   else
   {
      window.document.testbutton_form.testbutton.style.fontFamily = "";
   }


   //set font size
   if(window.document.button_factory.set_fontsize.value != "")
   {
      if(testNumber(window.document.button_factory.set_fontsize.value) == "good")
      {
         window.document.testbutton_form.testbutton.style.fontSize = window.document.button_factory.set_fontsize.value + "px";
      }
      else
      {
         highlightError("window.document.button_factory.set_fontsize");
         alert("Font size needs to be a positive integer: 1, 2, 3, 4, etc...");
      }
   }
   else
   {
      window.document.testbutton_form.testbutton.style.fontSize = "";
   }


   //set font color
   if(window.document.button_factory.set_fontcolor.value != "")
   {
      if(testHexCode(window.document.button_factory.set_fontcolor.value) == "good")
      {
         window.document.testbutton_form.testbutton.style.color = "#" + window.document.button_factory.set_fontcolor.value;
      }
      else
      {
         highlightError("window.document.button_factory.set_fontcolor");
         alert("Font color does not appear to be a valid hex code.");
      }
   }
   else
   {
      window.document.testbutton_form.testbutton.style.color = "";
   }




   //set font weight (bold)
   if(window.document.button_factory.set_fontweight.checked == true)
   {
      window.document.testbutton_form.testbutton.style.fontWeight = "bold";
   }
   else
   {
      window.document.testbutton_form.testbutton.style.fontWeight = "normal";
   }


   //set font style (italic)
   if(window.document.button_factory.set_fontstyle.checked == true)
   {
      window.document.testbutton_form.testbutton.style.fontStyle = "italic";
   }
   else
   {
      window.document.testbutton_form.testbutton.style.fontStyle = "normal";
   }


   //set underline
   if(window.document.button_factory.set_underline.checked == true)
   {
      window.document.testbutton_form.testbutton.style.textDecoration = "underline";
   }
   else
   {
      window.document.testbutton_form.testbutton.style.textDecoration = "";
   }


   //set button width
   if(window.document.button_factory.set_buttonwidth.value != "")
   {
      if(testNumber(window.document.button_factory.set_buttonwidth.value) == "good")
      {
         window.document.testbutton_form.testbutton.style.width = window.document.button_factory.set_buttonwidth.value + "px";
      }
      else
      {
         highlightError("window.document.button_factory.set_buttonwidth");
         alert("Button width needs to be a positive integer: 1, 2, 3, 4, etc...");
      }
   }
   else
   {
      window.document.testbutton_form.testbutton.style.width = "";
   }


   //set button height
   if(window.document.button_factory.set_buttonheight.value != "")
   {
      if(testNumber(window.document.button_factory.set_buttonheight.value) == "good")
      {
         window.document.testbutton_form.testbutton.style.height = window.document.button_factory.set_buttonheight.value + "px";
      }
      else
      {

         highlightError("window.document.button_factory.set_buttonheight");
         alert("Button height needs to be a positive integer: 1, 2, 3, 4, etc...");
      }
   }
   else
   {
      window.document.testbutton_form.testbutton.style.height = "";
   }


   //set background color
   if(window.document.button_factory.set_backgroundcolor.value != "")
   {
      var thisbgcolor = window.document.button_factory.set_backgroundcolor.value;
      if((testHexCode(thisbgcolor) == "good")||(thisbgcolor.toLowerCase() == "trans"))
      {
         if(thisbgcolor.toLowerCase() == "trans")
         {
            window.document.testbutton_form.testbutton.style.backgroundColor = "transparent";
            current_bgcolor_for_grtool = 'trans';
         }
         else
         {
            window.document.testbutton_form.testbutton.style.backgroundColor = "#" + window.document.button_factory.set_backgroundcolor.value;
            current_bgcolor_for_grtool = window.document.button_factory.set_backgroundcolor.value;
         }
      }
      else
      {
         highlightError("window.document.button_factory.set_backgroundcolor");
         alert("Background color does not appear to be a valid hex code.");
      }
   }
   else
   {
      window.document.testbutton_form.testbutton.style.backgroundColor = "";
      current_bgcolor_for_grtool = "";
   }



   //set background image
   if(window.document.button_factory.set_backgroundimage.value != "")
   {
      window.document.testbutton_form.testbutton.style.backgroundImage = "url(" + window.document.button_factory.set_backgroundimage.value + ")";
   }
   else
   {
      window.document.testbutton_form.testbutton.style.backgroundImage = "";
   }


   //set background gradient
   if(window.document.button_factory.set_gradient.value != "NONE")
   {
      var grst = window.document.button_factory.set_gradient.value;
      var grst1 = grst.substring(0,6);
      var grst2 = grst.substring(7,13);
      var grst3 = grst.charAt(14);

      window.document.testbutton_form.testbutton.style.filter = "progid:DXImageTransform.Microsoft.Gradient(GradientType=" + grst3 + ",StartColorStr='#ff" + grst1 + "',EndColorStr='#ff" + grst2 + "')";
   }
   else
   {
      window.document.testbutton_form.testbutton.style.filter = "";
   }



   if(window.document.button_factory.borderdraw[0].checked == true)
   {
      //set border style
      if(window.document.button_factory.set_borderstyle.value == "default")
      {
         window.document.testbutton_form.testbutton.style.borderStyle = "";
      }
      else
      {
         window.document.testbutton_form.testbutton.style.borderStyle = window.document.button_factory.set_borderstyle.value;
         window.document.button_factory.set_borderstyle_top.value = window.document.button_factory.set_borderstyle.value;
         window.document.button_factory.set_borderstyle_bottom.value = window.document.button_factory.set_borderstyle.value;
         window.document.button_factory.set_borderstyle_left.value = window.document.button_factory.set_borderstyle.value;
         window.document.button_factory.set_borderstyle_right.value = window.document.button_factory.set_borderstyle.value;
      }

      //set border color
      if(window.document.button_factory.set_bordercolor.value != "")
      {
         if(testHexCode(window.document.button_factory.set_bordercolor.value) == "good")
         {
            window.document.testbutton_form.testbutton.style.borderColor = "#" + window.document.button_factory.set_bordercolor.value;
            window.document.button_factory.set_bordercolor_top.value = window.document.button_factory.set_bordercolor.value;
            window.document.button_factory.set_bordercolor_bottom.value = window.document.button_factory.set_bordercolor.value;
            window.document.button_factory.set_bordercolor_left.value = window.document.button_factory.set_bordercolor.value;
            window.document.button_factory.set_bordercolor_right.value = window.document.button_factory.set_bordercolor.value;
         }
         else
         {
            highlightError("window.document.button_factory.set_bordercolor");
            alert("Border color does not appear to be a valid hex code.");
         }
      }
      else
      {
         window.document.testbutton_form.testbutton.style.borderColor = "";
      }

      //set border width
      if(window.document.button_factory.set_borderwidth.value != "")
      {
         if((testNumber(window.document.button_factory.set_borderwidth.value) == "good")||(window.document.button_factory.set_borderwidth.value == 0))
         {
            window.document.testbutton_form.testbutton.style.borderWidth = window.document.button_factory.set_borderwidth.value + "px";
            window.document.button_factory.set_borderwidth_top.value = window.document.button_factory.set_borderwidth.value;
            window.document.button_factory.set_borderwidth_bottom.value = window.document.button_factory.set_borderwidth.value;
            window.document.button_factory.set_borderwidth_left.value = window.document.button_factory.set_borderwidth.value;
            window.document.button_factory.set_borderwidth_right.value = window.document.button_factory.set_borderwidth.value;
         }
         else
         {
            highlightError("window.document.button_factory.set_borderwidth");
            alert("Border width needs to be 0, 1, 2, 3, 4, etc...");
         }
      }
      else
      {
         window.document.testbutton_form.testbutton.style.borderWidth = "";
      }
   }
   else
   {
      //set TOP border style
      if(window.document.button_factory.set_borderstyle_top.value == "default")
      {
         window.document.testbutton_form.testbutton.style.borderTopStyle = "";
      }
      else
      {
         window.document.testbutton_form.testbutton.style.borderTopStyle = window.document.button_factory.set_borderstyle_top.value;
      }

      //set TOP border color
      if(window.document.button_factory.set_bordercolor_top.value != "")
      {
         if(testHexCode(window.document.button_factory.set_bordercolor_top.value) == "good")
         {
            window.document.testbutton_form.testbutton.style.borderTopColor = "#" + window.document.button_factory.set_bordercolor_top.value;
         }
         else
         {
            highlightError("window.document.button_factory.set_bordercolor_top");
            alert("Top border color does not appear to be a valid hex code.");
         }
      }
      else
      {
         window.document.testbutton_form.testbutton.style.borderTopColor = "";
      }

      //set TOP border width
      if(window.document.button_factory.set_borderwidth_top.value != "")
      {
         if((testNumber(window.document.button_factory.set_borderwidth_top.value) == "good")||(window.document.button_factory.set_borderwidth_top.value == 0))
         {
            window.document.testbutton_form.testbutton.style.borderTopWidth = window.document.button_factory.set_borderwidth_top.value + "px";
         }
         else
         {
            highlightError("window.document.button_factory.set_borderwidth_top");
            alert("Top border width needs to be 0, 1, 2, 3, 4, etc...");
         }
      }
      else
      {
         window.document.testbutton_form.testbutton.style.borderTopWidth = "";
      }

      //set BOTTOM border style
      if(window.document.button_factory.set_borderstyle_bottom.value == "default")
      {
         window.document.testbutton_form.testbutton.style.borderBottomStyle = "";
      }
      else
      {
         window.document.testbutton_form.testbutton.style.borderBottomStyle = window.document.button_factory.set_borderstyle_bottom.value;
      }

      //set BOTTOM border color
      if(window.document.button_factory.set_bordercolor_bottom.value != "")
      {
         if(testHexCode(window.document.button_factory.set_bordercolor_bottom.value) == "good")
         {
            window.document.testbutton_form.testbutton.style.borderBottomColor = "#" + window.document.button_factory.set_bordercolor_bottom.value;
         }
         else
         {
            highlightError("window.document.button_factory.set_bordercolor_bottom");
            alert("Bottom border color does not appear to be a valid hex code.");
         }
      }
      else
      {
         window.document.testbutton_form.testbutton.style.borderBottomColor = "";
      }

      //set BOTTOM border width
      if(window.document.button_factory.set_borderwidth_bottom.value != "")
      {
         if((testNumber(window.document.button_factory.set_borderwidth_bottom.value) == "good")||(window.document.button_factory.set_borderwidth_bottom.value == 0))
         {
            window.document.testbutton_form.testbutton.style.borderBottomWidth = window.document.button_factory.set_borderwidth_bottom.value + "px";
         }
         else
         {
            highlightError("window.document.button_factory.set_borderwidth_bottom");
            alert("Bottom border width needs to be 0, 1, 2, 3, 4, etc...");
         }
      }
      else
      {
         window.document.testbutton_form.testbutton.style.borderBottomWidth = "";
      }

      //set LEFT border style
      if(window.document.button_factory.set_borderstyle_left.value == "default")
      {
         window.document.testbutton_form.testbutton.style.borderLeftStyle = "";
      }
      else
      {
         window.document.testbutton_form.testbutton.style.borderLeftStyle = window.document.button_factory.set_borderstyle_left.value;
      }

      //set LEFT border color
      if(window.document.button_factory.set_bordercolor_left.value != "")
      {
         if(testHexCode(window.document.button_factory.set_bordercolor_left.value) == "good")
         {
            window.document.testbutton_form.testbutton.style.borderLeftColor = "#" + window.document.button_factory.set_bordercolor_left.value;
         }
         else
         {
            highlightError("window.document.button_factory.set_bordercolor_left");
            alert("Left border color does not appear to be a valid hex code.");
         }
      }
      else
      {
         window.document.testbutton_form.testbutton.style.borderLeftColor = "";
      }

      //set LEFT border width
      if(window.document.button_factory.set_borderwidth_left.value != "")
      {
         if((testNumber(window.document.button_factory.set_borderwidth_left.value) == "good")||(window.document.button_factory.set_borderwidth_left.value == 0))
         {
            window.document.testbutton_form.testbutton.style.borderLeftWidth = window.document.button_factory.set_borderwidth_left.value + "px";
         }
         else
         {
            highlightError("window.document.button_factory.set_borderwidth_left");
            alert("Left border width needs to be 0, 1, 2, 3, 4, etc...");
         }
      }
      else
      {
         window.document.testbutton_form.testbutton.style.borderLeftWidth = "";
      }

      //set RIGHT border style
      if(window.document.button_factory.set_borderstyle_right.value == "default")
      {
         window.document.testbutton_form.testbutton.style.borderRightStyle = "";
      }
      else
      {
         window.document.testbutton_form.testbutton.style.borderRightStyle = window.document.button_factory.set_borderstyle_right.value;
      }

      //set RIGHT border color
      if(window.document.button_factory.set_bordercolor_right.value != "")
      {
         if(testHexCode(window.document.button_factory.set_bordercolor_right.value) == "good")
         {
            window.document.testbutton_form.testbutton.style.borderRightColor = "#" + window.document.button_factory.set_bordercolor_right.value;
         }
         else
         {
            highlightError("window.document.button_factory.set_bordercolor_right");
            alert("Right border color does not appear to be a valid hex code.");
         }
      }
      else
      {
         window.document.testbutton_form.testbutton.style.borderRightColor = "";
      }

      //set RIGHT border width
      if(window.document.button_factory.set_borderwidth_right.value != "")
      {
         if((testNumber(window.document.button_factory.set_borderwidth_right.value) == "good")||(window.document.button_factory.set_borderwidth_right.value == 0))
         {
            window.document.testbutton_form.testbutton.style.borderRightWidth = window.document.button_factory.set_borderwidth_right.value + "px";
         }
         else
         {
            highlightError("window.document.button_factory.set_borderwidth_right");
            alert("Right border width needs to be 0, 1, 2, 3, 4, etc...");
         }
      }
      else
      {
         window.document.testbutton_form.testbutton.style.borderRightWidth = "";
      }
   }


   //set text align
   if(window.document.button_factory.set_textalign[0].checked == true)
   {
      window.document.testbutton_form.testbutton.style.textAlign = "left";
   }
   else if(window.document.button_factory.set_textalign[1].checked == true)
   {
      window.document.testbutton_form.testbutton.style.textAlign = "center";
   }
   else if(window.document.button_factory.set_textalign[2].checked == true)
   {
      window.document.testbutton_form.testbutton.style.textAlign = "right";
   }


   make_mo_Changes();
   writeCode();
}







function highlightError(BOX)
{
   universal_error_flag = 1;

   eval(BOX + ".style.backgroundColor = '" + errorBoxColor + "'");
   eval(BOX + ".style.color = '" + errorFontColor + "'");

   eval(BOX + ".focus()");
}

function unhighlightError(BOX)
{
   universal_error_flag = 0;

   eval(BOX + ".style.backgroundColor = ''");
   eval(BOX + ".style.color = ''");
}




function resetAllValues()
{
   if (confirm("This action will remove all your choices (except button text) and reset all colors, fonts, borders, etc to the default. Continue?"))
   {
      //clear all boxes except user defined font & button text
      for (var i = 1; i < button_factory_box_array.length; i++) //notice we're skipping element 0 (var i = 1) because 0 is the button text which we wish to keep
      {
         eval("window.document.button_factory." + button_factory_box_array[i] + ".value = ''");
      }

      //set all border styles to [default]
      window.document.button_factory.set_borderstyle.selectedIndex = 0;
      window.document.button_factory.set_borderstyle_top.selectedIndex = 0;
      window.document.button_factory.set_borderstyle_bottom.selectedIndex = 0;
      window.document.button_factory.set_borderstyle_left.selectedIndex = 0;
      window.document.button_factory.set_borderstyle_right.selectedIndex = 0;

      //set draw borders to collective
      window.document.button_factory.borderdraw[0].checked = true;
      window.document.getElementById('borderdraw_sep').style.display = "none";
      window.document.getElementById('borderdraw_col').style.display = "inline";

      //clear user defined font box and make hidden, set font style to [default]
      window.document.button_factory.font_select.selectedIndex = 0;
      window.document.getElementById('userselect_font_box').value = "";
      window.document.getElementById('userselect_font_box').style.visibility = "hidden";
      setFontBox("default");

      //uncheck bold, italic & underline
      window.document.button_factory.set_fontweight.checked = false;
      window.document.button_factory.set_fontstyle.checked = false;
      window.document.button_factory.set_underline.checked = false;

      //set page background color back to FFFFFF
      window.document.button_factory.set_pagebackground.value = "FFFFFF";

      //set all mo_border styles to [default]
      window.document.button_factory.mo_set_borderstyle.selectedIndex = 0;
      window.document.button_factory.mo_set_borderstyle_top.selectedIndex = 0;
      window.document.button_factory.mo_set_borderstyle_bottom.selectedIndex = 0;
      window.document.button_factory.mo_set_borderstyle_left.selectedIndex = 0;
      window.document.button_factory.mo_set_borderstyle_right.selectedIndex = 0;

      //set mo_draw borders to collective
      window.document.button_factory.mo_borderdraw[0].checked = true;
      window.document.getElementById('mo_borderdraw_sep').style.display = "none";
      window.document.getElementById('mo_borderdraw_col').style.display = "inline";

      //set textalign to center
      window.document.button_factory.set_textalign[1].checked = true;

      //remove gradient filters (if any)
      window.document.button_factory.set_gradient.value = "NONE";
      window.document.button_factory.mo_set_gradient.value = "NONE";

      tabber('button1');
      makeChanges();
   }
}




function borderdrawWhich(COLSEP)
{
   if(COLSEP == "col")
   {
      window.document.getElementById('borderdraw_sep').style.display = "none";
      window.document.getElementById('borderdraw_col').style.display = "inline";

      window.document.button_factory.set_bordercolor.value = window.document.button_factory.set_bordercolor_top.value;
      window.document.button_factory.set_borderwidth.value = window.document.button_factory.set_borderwidth_top.value;
      window.document.button_factory.set_borderstyle.selectedIndex = window.document.button_factory.set_borderstyle_top.selectedIndex;

      //and copy back those collective attributes to the separate borders for reading to make the code
      //top
      window.document.button_factory.set_bordercolor_top.value = window.document.button_factory.set_bordercolor.value;
      window.document.button_factory.set_borderwidth_top.value = window.document.button_factory.set_borderwidth.value;
      window.document.button_factory.set_borderstyle_top.selectedIndex = window.document.button_factory.set_borderstyle.selectedIndex;
      //bottom
      window.document.button_factory.set_bordercolor_bottom.value = window.document.button_factory.set_bordercolor.value;
      window.document.button_factory.set_borderwidth_bottom.value = window.document.button_factory.set_borderwidth.value;
      window.document.button_factory.set_borderstyle_bottom.selectedIndex = window.document.button_factory.set_borderstyle.selectedIndex;
      //left
      window.document.button_factory.set_bordercolor_left.value = window.document.button_factory.set_bordercolor.value;
      window.document.button_factory.set_borderwidth_left.value = window.document.button_factory.set_borderwidth.value;
      window.document.button_factory.set_borderstyle_left.selectedIndex = window.document.button_factory.set_borderstyle.selectedIndex;
      //right
      window.document.button_factory.set_bordercolor_right.value = window.document.button_factory.set_bordercolor.value;
      window.document.button_factory.set_borderwidth_right.value = window.document.button_factory.set_borderwidth.value;
      window.document.button_factory.set_borderstyle_right.selectedIndex = window.document.button_factory.set_borderstyle.selectedIndex;

      makeChanges();
   }
   else
   {
      window.document.getElementById('borderdraw_col').style.display = "none";
      window.document.getElementById('borderdraw_sep').style.display = "inline";
      //top
      window.document.button_factory.set_bordercolor_top.value = window.document.button_factory.set_bordercolor.value;
      window.document.button_factory.set_borderwidth_top.value = window.document.button_factory.set_borderwidth.value;
      window.document.button_factory.set_borderstyle_top.selectedIndex = window.document.button_factory.set_borderstyle.selectedIndex;
      //bottom
      window.document.button_factory.set_bordercolor_bottom.value = window.document.button_factory.set_bordercolor.value;
      window.document.button_factory.set_borderwidth_bottom.value = window.document.button_factory.set_borderwidth.value;
      window.document.button_factory.set_borderstyle_bottom.selectedIndex = window.document.button_factory.set_borderstyle.selectedIndex;
      //left
      window.document.button_factory.set_bordercolor_left.value = window.document.button_factory.set_bordercolor.value;
      window.document.button_factory.set_borderwidth_left.value = window.document.button_factory.set_borderwidth.value;
      window.document.button_factory.set_borderstyle_left.selectedIndex = window.document.button_factory.set_borderstyle.selectedIndex;
      //right
      window.document.button_factory.set_bordercolor_right.value = window.document.button_factory.set_bordercolor.value;
      window.document.button_factory.set_borderwidth_right.value = window.document.button_factory.set_borderwidth.value;
      window.document.button_factory.set_borderstyle_right.selectedIndex = window.document.button_factory.set_borderstyle.selectedIndex;
      makeChanges();
   }
}




function setFontBox(FONT)
{
   if(FONT == "default")
   {
      window.document.button_factory.set_fontfamily.value = "";
      window.document.getElementById('userselect_font_box').style.visibility = "hidden";
      makeChanges();
   }
   else if(FONT == "user defined")
   {
      window.document.getElementById('userselect_font_box').style.visibility = "visible";
      window.document.button_factory.set_fontfamily.value = "";
      window.document.button_factory.set_fontfamily.focus();
   }
   else
   {
      window.document.button_factory.set_fontfamily.value = FONT;
      window.document.getElementById('userselect_font_box').style.visibility = "hidden";
      makeChanges();
   }
}



function incrementNumber(SOURCE,MINIMUM)
{
   if(window.event.keyCode == 38) //up key
   {
      var NUM = (eval(SOURCE + ".value"))*1;
      if(((NUM != "")&&(testNumber(NUM) == "good"))||(NUM == 0))
      {
         NUM = NUM + 1;
         eval(SOURCE + '.value = ' + NUM);
         makeChanges();
      }
   }
   else if(window.event.keyCode == 40) //down key
   {
      if(MINIMUM == 1)
      {
         var NUM = (eval(SOURCE + ".value"))*1;
         if((NUM != "")&&(testNumber(NUM-1) == "good"))
         {
            NUM = NUM - 1;
            eval(SOURCE + '.value = ' + NUM);
            makeChanges();
         }
      }
      else
      {
         var NUM = (eval(SOURCE + ".value"))*1;
         if((NUM != "")&&(testNumber(NUM) == "good"))
         {
            NUM = NUM - 1;
            eval(SOURCE + '.value = ' + NUM);
            makeChanges();
         }
      }
   }
}







function testHexCode(UserCode)
{
   if(UserCode.length == 6)
   {
      var hexArray = new Array('0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f','A','B','C','D','E','F')
      var flag = 0;
      for (var n = 0; n < 6; n++)
      {

         for (var i = 0; i < 22; i++)
         {
            if(hexArray[i] == UserCode.charAt(n))
            {
               flag = flag + 1;
            }
         }
      }
   }

   if(flag == 6) { return "good"; } else { return "bad"; }
}



function testNumber(UserNumber)
{
   var errorflag = 0;

   if(UserNumber * 1 != UserNumber) { errorflag = errorflag +1;}
   if(Math.floor(UserNumber) != UserNumber) { errorflag = errorflag +1;}
   if(UserNumber < 1) { errorflag = errorflag +1;}

   if(errorflag == 0) { return "good"; } else { return "bad"; }
}



function openPicker(ORIGIN)
{
   current_picker_win = ORIGIN;
   current_picker_hex = eval("window.document.button_factory." + current_picker_win + ".value");

   if(testHexCode(current_picker_hex) != 'good')
   {
      current_picker_hex = 'FFFFFF';
   }


   if (window.showModalDialog)
   {
      pickerWin = window.showModalDialog('picker.html',window,'dialogHeight:340px;dialogWidth:370px;status:no;resizable:yes;scroll:no;help:no');
   }
   else
   {
      var popupwidth = 370;
      var popupheight = 340;
      var topside = (screen.height - popupheight)*0.4;
      var leftside = (screen.width - popupwidth)*0.5;


      pickerWin = window.open('picker.html',window, 'height=' + popupheight + ',width=' + popupwidth + ',top=' + topside + ',left=' + leftside + ',toolbar=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,modal=yes');
   }
}


function update(MYVAR)
{
   if (window.showModalDialog)
   {
      eval("window.document.button_factory." + current_picker_win + ".value = myTerm");
   }
   else
   {
      eval("window.document.button_factory." + current_picker_win + ".value = MYVAR");
   }

   makeChanges();
}


function updateGr(REGORMO)
{
   if (window.showModalDialog)
   {
      if(REGORMO == "reg")
      {
         //eval("window.document.button_factory.set_gradient.value = myTermGr");
         window.document.button_factory.set_gradient.value = myTermGr;
      }
      else if(REGORMO == "mo")
      {
         //eval("window.document.button_factory.mo_set_gradient.value = myTermGr");
         window.document.button_factory.mo_set_gradient.value = myTermGr;
      }
   }
   else
   {
      eval("window.document.button_factory." + current_picker_win + ".value = MYVAR");
   }

   makeChanges();
}




function openGradientTool(REGorMO)
{
   //current_picker_hex = window.document.button_factory.set_backgroundcolor.value;
   //current_gradient_string = window.document.button_factory.set_gradient.value;

   current_bgcolor_for_grtool = window.document.button_factory.set_backgroundcolor.value;
   current_bgcolor_for_grtool_mo = window.document.button_factory.mo_set_backgroundcolor.value;
   current_bgimage_for_grtool = window.document.button_factory.set_backgroundimage.value;
   current_bgimage_for_grtool_mo = window.document.button_factory.mo_set_backgroundimage.value;
   current_gradient_string = window.document.button_factory.set_gradient.value;
   current_gradient_string_mo = window.document.button_factory.mo_set_gradient.value;
   gradient_REGorMO = REGorMO;


/*
   if(testHexCode(current_picker_hex) != 'good')
   {
      current_picker_hex = 'FFFFFF';
   }
*/

   if (window.showModalDialog)
   {
      pickerGrWin = window.showModalDialog('picker_gr.html',window,'dialogHeight:360px;dialogWidth:660px;status:no;resizable:yes;scroll:no;help:no');
   }
   else
   {
      var popupwidth = 660;
      var popupheight = 360;
      var topside = (screen.height - popupheight)*0.4;
      var leftside = (screen.width - popupwidth)*0.5;


      pickerGrWin = window.open('picker_gr.html',window, 'height=' + popupheight + ',width=' + popupwidth + ',top=' + topside + ',left=' + leftside + ',toolbar=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,modal=yes');
   }
}







function makeBGColor(COLOR)
{
   window.document.button_factory.set_pagebackground.value = COLOR;
   tabber('button1');
   makeChanges();

   if(window.document.button_factory.set_pagebackgroundimage.value)
   {
      alert('I\'d love to show the color you chose, but at this time you have a test area background image specified... and the browser will render the image before the color.');
   }


}

function makeBGImage()
{
   window.document.button_factory.set_pagebackgroundimage.value = "back01.gif";
   tabber('button1');
   makeChanges();
}



function toggleGradientOFF()
{
   if(window.document.button_factory.set_gradient.value != "NONE")
   {
      window.document.testbutton_form.testbutton.style.filter = "";
   }
   else
   {
      alert("No gradient to toggle.\n\nAfter choosing a gradient effect, depress this button to see what your button would look like to those using a browser that does not support gradient filters. At this writing, Internet Explorer based browsers are the only ones that do support such effects. This button helps you be sure that your buttons are still presentable to other browsers.");
   }
}


function toggleGradientON()
{

   if(window.document.button_factory.set_gradient.value != "NONE")
   {
      var grst = window.document.button_factory.set_gradient.value;
      var grst1 = grst.substring(0,6);
      var grst2 = grst.substring(7,13);
      var grst3 = grst.charAt(14);

      window.document.testbutton_form.testbutton.style.filter = "progid:DXImageTransform.Microsoft.Gradient(GradientType=" + grst3 + ",StartColorStr='#ff" + grst1 + "',EndColorStr='#ff" + grst2 + "')";
   }

   window.document.button_factory.set_gradient_toggle.blur();
}



