/*
   label.js
   modified from http://www.webmasterworld.com/forum21/12020.htm
 */

addEvent(window,"load",labels_init);
  function labels_init(){
    if(document.getElementById&&document.styleSheets)
    {
      try{
        var s=document.styleSheets[document.styleSheets.length-1];
        addStyleRule(s,"label.inside","position:absolute; visibility:hidden;");
        for(var i=0,label=null;(label=document.getElementsByTagName("label")[i]);i++)
        {
          if(label.className=='inside'){
            label_init(label);
          }
        }
        addEvent(document.forms[0],"submit",labels_uninit);
      }
      catch(e){}
    }
  }
  function labels_uninit(e){
    if(document.getElementById&&document.styleSheets)
    {
      for(var i=0,label=null;(label=document.getElementsByTagName("label")[i]);i++)
      {
        var el=document.getElementById(label.htmlFor);
        if(el&&el.value==el._labeltext)label_hide(el);
      }
    }
  }
function label_init(label){
  try{
    var el=document.getElementById(label.htmlFor);
    var elName=el.nodeName;var elType=el.getAttribute("type");
    if(elName=="TEXTAREA"||(elType=="text"||elType=="password"||elType=="search"))
    {
      el._labeltext=label.firstChild.nodeValue;
      el._type=el.getAttribute("type");
      addEvent(el,"focus",label_focused);
      addEvent(el,"blur",label_blurred);
      label_blurred({currentTarget:el});
    }
    else{
      label.style.position="static";
      label.style.visibility="visible";
    }
  }
  catch(e){
    label.style.position="static";
    label.style.visibility="visible";
  }
}
function label_focused(e){
  e=fix_e(e);
  var el=e.currentTarget;
  if(el.value==el._labeltext || el._type=="password")
    el=label_hide(el)
      el.select();
}
function label_hide(el){
  if(el._type=="password")
    el=label_setInputType(el,"password");
  el.value="";
  return el;
}
function label_blurred(e){
  e=fix_e(e);
  var el=e.currentTarget;
  if(el.value=="")
    el=label_show(el);
}
function label_show(el){
  if(el._type=="password")
    el=label_setInputType(el,"text");
  el.value=el._labeltext;
  return el;
}
function label_setInputType(el,type){
  if(navigator.appName=="Microsoft Internet Explorer"){
    var newEl=document.createElement("SPAN");
    newEl.innerHTML='<input type="'+type+'" />';
    newEl=newEl.firstChild;var s='';
    for(prop in el){
      try{
        if(prop!="type"&&prop!="height"&&prop!="width")
          newEl[prop]=el[prop];
      }
      catch(e){}
    }
    addEvent(newEl,"focus",label_focused);
    addEvent(newEl,"blur",label_blurred);
    el.parentNode.replaceChild(newEl,el);
    return newEl;
  }else{
    el.setAttribute("type",type);
    return el;
  }
}
function addEvent(obj,evType,fn){
  if(obj.addEventListener){
    obj.addEventListener(evType,fn,false);
    return true;
  }else if(obj.attachEvent){
    var r=obj.attachEvent("on"+evType,fn);
    return r;
  }else{return false;}
}
  function addStyleRule(stylesheet,selector,rule){
    if(stylesheet.addRule)
      stylesheet.addRule(selector,rule);
    else{
      var index=stylesheet.cssRules.length;
      stylesheet.insertRule(selector+"{"+rule+"}",index);
    }
  }
  function fix_e(e){
    if(!e&&window.event)
      e=window.event;
    if(!e.currentTarget&&e.srcElement)
      e.currentTarget=e.srcElement;
    if(!e.originalTarget&&e.srcElement)
      e.originalTarget=e.srcElement;
    return e;
  }
