YAHOO.namespace("UserForm");
YAHOO.UserForm.IsTextbox = function(el)
{
  var myType = el.getAttribute("type");
  
  return (myType == "text") || (myType == "password");
};

YAHOO.UserForm.AllowFocus = function(el)
{
  var myType = el.getAttribute("type");
  
  return (myType == "text") || (myType == "password") || (myType == "radio") || (myType == "checkbox");
};

YAHOO.UserForm.IsTrue = function(el)
{
  return true;
};

YAHOO.UserForm.IsVisible = function(el)
{
  var myDisplay = YAHOO.util.Dom.getStyle(el,"display");
  
  return myDisplay != "none"
};

// Set focus on first input control of form
YAHOO.UserForm.FocusOnFirst = function()
{
  //Old code failed with root="userForm"
  //new code failed with root=div#content
  //only need first element rather than iterating thru all
  var colInputs = YAHOO.util.Dom.getElementsBy(YAHOO.UserForm.AllowFocus, "input");
  
  if (colInputs.length > 0)
  {
    colInputs[0].focus();
    return;
  }
  
  var colTextAreas = YAHOO.util.Dom.getElementsBy(YAHOO.UserForm.IsVisible, "textarea");
  
  if (colTextAreas.length > 0)
  {
    colTextAreas[0].focus();
  }
};

// Modify text and textarea controls to select all existing text
YAHOO.UserForm.SelectText = function()
{
  var colInputs = YAHOO.util.Dom.getElementsBy(YAHOO.UserForm.IsTextbox, "input");
  
  for (var i = 0; i < colInputs.length; i++)
  {
    colInputs[i].onfocus = function() { YAHOO.util.Dom.addClass(this,"selected");this.select(); };
    colInputs[i].onblur = function() { YAHOO.util.Dom.removeClass(this,"selected"); };
  }
  
  var colTextAreas = YAHOO.util.Dom.getElementsBy(YAHOO.UserForm.IsVisible, "textarea");
  
  for (var i = 0; i < colTextAreas.length; i++){
    colTextAreas[i].onfocus = function() { YAHOO.util.Dom.addClass(this,"selected");this.select(); };
    colTextAreas[i].onblur = function() { YAHOO.util.Dom.removeClass(this,"selected"); };
  }
};

// Submit only once--can't because it messes with ASP.NET submission javascript
// Confirm submission
YAHOO.UserForm.ConfirmSubmit = function()
{
  var colInputs = document.getElementsByTagName("input");
  
  for (var i = 0; i < colInputs.length; i++)
  {
    if (colInputs[i].type == "submit")
    {
      if (colInputs[i].onclick != null)
      {
        var ctl = colInputs[i];
        
        colInputs[i].onclick = function()
        {
          var result = true;
          
          if (typeof(Page_ClientValidate) == 'function')
          {
            result = Page_ClientValidate();
          }
          return result && confirm(" _confirmMessage + ");
        };
      }
    }
  }
};

YAHOO.UserForm.IsTimezone = function(el)
{
  var myType = el.getAttribute("type");
  
  return (myType == "hidden") && (el.id.indexOf("Metadata/TimezoneA") > -1);
};

YAHOO.UserForm.SetTimezones = function()
{
  var date = new Date();
  var tzo = date.getTimezoneOffset() * -1;
  
  var els = YAHOO.util.Dom.getElementsBy(YAHOO.UserForm.IsTimezone, "input");

  for (var i = 0; i < els.length; i++)
  {
    els[i].value = tzo;
  }

  var el = YAHOO.util.Dom.get("x-VisitorTimeZoneOffset");
  
  if (el)
  {
    el.value = tzo;
  }
}

YAHOO.UserForm.Init = function() {
  YAHOO.UserForm.SetTimezones();
  YAHOO.UserForm.SelectText();
  YAHOO.UserForm.FocusOnFirst();
};

YAHOO.util.Event.onDOMReady(YAHOO.UserForm.Init);