function gcon_InitAllInputFieldsForHelpText()
{
    var aInput;

    aInputs = document.getElementsByTagName("input");
    gcon_AttachEvents(aInputs);
    
    aInputs = document.getElementsByTagName("textarea");
    gcon_AttachEvents(aInputs);
    
}

function gcon_OnBlur(evt)
{
    elem = gcon_GetElementFromEvent(evt);
    elem.className = elem.className.replace("gcon_FOCUS", "");
    elem.className = elem.className.replace("gcon_SmartField", "gcon_SmartField gcon_BLUR");
    

}

function gcon_OnFocus(evt)
{
    elem = gcon_GetElementFromEvent(evt);
    elem.className = elem.className.replace("gcon_BLUR", "");
    elem.className = elem.className.replace("gcon_SmartField", "gcon_SmartField gcon_FOCUS");
    
}

function gcon_OnKeyup(evt)
{
    elem = gcon_GetElementFromEvent(evt);
    gcon_UpdateEmpty(elem);

}



function gcon_UpdateEmpty(elem)
{
     if (elem.value == "")
       {
           if (elem.className.indexOf("gcon_EMPTY") == -1)
           {
               elem.className = elem.className.replace("gcon_SmartField", "gcon_SmartField gcon_EMPTY");
           }
       }
       else
       {
              if (elem.className.indexOf("gcon_EMPTY") > -1)
              {
                  elem.className = elem.className.replace("gcon_EMPTY", "");
              }
       }

}

function gcon_UpdateBlur(elem)
{
    if (elem.className.indexOf("gcon_BLUR") == -1)
    {
       if (elem.className.indexOf("gcon_FOCUS") == -1)
       {
            elem.className = elem.className.replace("gcon_SmartField", "gcon_SmartField gcon_BLUR");
       }
    
    }

}


function gcon_GetElementFromEvent(evt)
{

    TempEvt = (evt) ? evt : ((window.event) ? window.event : "");
    return (TempEvt.target) ? TempEvt.target : TempEvt.srcElement;
}

function gcon_AttachEvents(aInputs)
{
    for (var i = 0; i < aInputs.length; i++)
    {
       var strClassName;
       var elem = aInputs[i];
       
       strClassName = elem.className;
       if (strClassName.indexOf("gcon_SmartField") > -1)
       {

           elem.onblur = gcon_OnBlur;
           elem.onfocus = gcon_OnFocus;
           elem.onkeyup = gcon_OnKeyup;  
           
           gcon_UpdateEmpty(elem);
           gcon_UpdateBlur(elem);
       }    
    }

}

