var labelmaker=function(){var initLabel=function(span){span.style.display='none';var lbl=span.getElementsByTagName('label')[0];var input=document.getElementById(lbl.htmlFor);input._label=lbl.firstChild.nodeValue;addEvent(input,'focus',focusedLabel);addEvent(input,'blur',blurredLabel);if(input.value=='')showLabel(input);}
var wipeLabels=function(div){var inputs=getElementsByTagNames('input,textarea',div);for(var i=0;i<inputs.length;i++){if(inputs[i].value==inputs[i]._label)hideLabel(inputs[i]);}}
var focusedLabel=function(e){var input=window.event?window.event.srcElement:e?e.target:null;if(input.value==input._label)hideLabel(input);}
var blurredLabel=function(e){var input=window.event?window.event.srcElement:e?e.target:null;if(input.value=='')showLabel(input);}
var hideLabel=function(input){input.value='';removeClass(input,'hint');}
var showLabel=function(input){input.value=input._label;addClass(input,'hint');}
return{init:function(id,form){if(!document.getElementById||!document.getElementById(id))return;var div=document.getElementById(id);var lbls=getElementsByClass(div,'span','lbl');for(var i=0;i<lbls.length;i++){initLabel(lbls[i]);}
if(!form)var form=document.getElementById('fwrapper');addEvent(form,'submit',function(){wipeLabels(div)});}}}();




function addEvent(obj,type,fn){if(obj.addEventListener)
obj.addEventListener(type,fn,false);else if(obj.attachEvent){obj["e"+type+fn]=fn;obj[type+fn]=function(){obj["e"+type+fn](window.event);}
obj.attachEvent("on"+type,obj[type+fn]);}}

function getElementsByClass(node,tag,searchClass){var classElements=new Array();if(node==null)
node=document;if(tag==null)
tag='*';var els=node.getElementsByTagName(tag);var elsLen=els.length;var pattern=new RegExp("(^|\\s)"+searchClass+"(\\s|$)");for(i=0,j=0;i<elsLen;i++){if(pattern.test(els[i].className)){classElements[j]=els[i];j++;}}
return classElements;}
function getElementsByTagNames(list,obj){if(!obj)var obj=document;var tagNames=list.split(',');var resultArray=new Array();for(var i=0;i<tagNames.length;i++){var tags=obj.getElementsByTagName(tagNames[i]);for(var j=0;j<tags.length;j++){resultArray.push(tags[j]);}}
var testNode=resultArray[0];if(testNode.sourceIndex){resultArray.sort(function(a,b){return a.sourceIndex-b.sourceIndex;});}else if(testNode.compareDocumentPosition){resultArray.sort(function(a,b){return 3-(a.compareDocumentPosition(b)&6);});}
return resultArray;}
function addClass(target,classValue){var pattern=new RegExp("(^| )"+classValue+"( |$)");if(!pattern.test(target.className)){if(target.className=="")target.className=classValue;else target.className+=" "+classValue;}
return true;}
function removeClass(target,classValue){var removedClass=target.className;var pattern=new RegExp("(^| )"+classValue+"( |$)");removedClass=removedClass.replace(pattern,"$1");removedClass=removedClass.replace(/ $/,"");target.className=removedClass;return true;}
