/*
Check the Label
FairSky Pages Component
-----------------------
Copyright 2004 Joshua Paine
Created by Joshua Paine of FairSky Networks <http://fairsky.us/>
Contact at <http://fairsky.us/contact>
Updated 2004-12-13

The latest version should be available at
<http://demo.fairsky.us/javascript/checkthelabel.html>

You may copy, reuse, or produce derivative works of this code
only under the terms of the Linky License v0.1 or later.
The Linky License can be found at <http://fairsky.us/linky>.
The main points of the license are:
	1) Do not alter or remove this notice.
	2) Notify me of your usage through one of the means listed
	   at <http://fairsky.us/contact>.
*/

function setupMarkCheckedLabels()
{
	var c;
	if(this.htmlFor) c = document.getElementById(this.htmlFor);
	else if(this.getElementsByTagName('input')) c = this.getElementsByTagName('input').item(0);
	else c = null;
	if(c && (c.type.toLowerCase()=='checkbox' || c.type.toLowerCase()=='radio'))
	{
		if(!c.labels) c.labels = new Array();
		c.labels[c.labels.length] = this;
		//addEventHandler(c,'change',callMarkLabels,false);
		addEventHandler(c,'click',callMarkLabels,false);
		markLabels(c);
	}
}

function markLabels(box)
{
	var x;
	if(box.labels)
	{
		if(box.checked) for(x=0; x<box.labels.length; x++){ addClassName(box.labels[x],'fspBoxChecked'); removeClassName(box.labels[x],'fspBoxUnchecked'); }
		else for(x=0; x<box.labels.length; x++){ addClassName(box.labels[x],'fspBoxUnchecked'); removeClassName(box.labels[x],'fspBoxChecked'); }
	}
}

function callMarkLabels(e)
{
	var x, n, b;
	if(!e || !e.currentTarget) n = window.event.srcElement;
	else n = e.currentTarget;
	//alert(n.tagName+'--'+n.name);
	b = document.getElementsByName(n.name);
	for(x=0; x<b.length; x++) markLabels(b[x]);
}

document.register('label',null,setupMarkCheckedLabels,'load',false);