// Inspired by adams's radio customisation:
// http://www.flog.co.nz/2005/04/27/arc-adams-radiocheckbox-customisation/

function nf_changeIt(el, t)
{
    if(el.lab)
    {
        var lab = el.lab ;
        var par = el ;  
    }
    else
    {
        var lab = el ;
        var par = el.par ;
    }
    var e = document.getElementById(lab.htmlFor) ;

    if(t == "radio")
    {
        var form = e.form ;
        var allRadio = form.elements[e.name] ;
        
        for(var i=0; i < allRadio.length; i++)
        {
            var oneRadio = allRadio[i] ;
            if(oneRadio.id != e.id && oneRadio.checked == true)
            {
                var parIn = oneRadio.parentNode ;
                var labIn = parIn.lab ;
                
                labIn.className = "radioOffLabel" ;
                parIn.className = "radioOffParent" ;
                oneRadio.checked = false ;
            }
        }
    }
    
    if(lab.className == t + "OnLabel")
    {
        if(t != "radio")
        {
            lab.className = t + "OffLabel" ;
            par.className = t + "OffParent" ;
            e.checked = false ;
        }
    }
    else
    {
        lab.className = t + "OnLabel" ;
        par.className = t + "OnParent" ;
        e.checked = true ;
    }
    
    
    
    
}

function niceForm(id, disabled)
{
    var lab = document.getElementById(id) ;
    if(!lab)
    {
        return ;
    }
    
    var e = document.getElementById(lab.htmlFor) ;
    if(!e)
    {
        return ;
    }
    
	e.style.display = "none" ;
    e.parentNode.lab = lab ;
    lab.par = e.parentNode ;
    if(e.checked)
    {
        lab.className = e.type + "OnLabel" ;
        e.parentNode.className = e.type + "OnParent" ;
    }
    else
    {
        lab.className = e.type + "OffLabel" ;
        e.parentNode.className = e.type + "OffParent" ;
    }
    
    if(!disabled)
    {
        lab.onclick = function(){ nf_changeIt(this, e.type); return false;} ;
        e.parentNode.onclick = function(){ nf_changeIt(this, e.type) ; return false;} ;  
    }

}

function nf_validAllDone(formId, disabled)
{
    form = document.getElementById(formId) ;
    
    if(!form)
    {
        return ;
    }
    
    var labels = form.getElementsByTagName("label") ;
    for(var i = 0; i < labels.length; i++)
    {
        var oneLabel = labels[i] ;
        if(oneLabel.className != "radioOnLabel" && oneLabel.className != "radioOffLabel" && oneLabel.className != "checkboxOnLabel"  && oneLabel.className != "checkboxOffLabel")
        {
            niceForm(oneLabel.id, disabled) ;
        }
    }
}
