All pastes #368640 Raw Edit

Mine

public text v1 · immutable
#368640 ·published 2007-02-23 06:19 UTC
rendered paste body
/**
 * "Else" Functionality for "Label" HTML tags.
 *
 * @author	Dean Newman < webmaster@auscoder.com >
 * @copyright	Copyright 2007, Dean Newmna
 * @license	GNU/General Public License v2
 * @package	label_for_else.js
 */

function sw_for_type(objInput)
	{
	if ( ! document.getElementById )
	{
		return true;
	}
		
	if ( ! objInput )
	{
		objInput = document.getElementById(objInput);
			
		if ( ! objInput )
		{
			return true;
		}
	}
		
	var objFor = 0;
	var forVal = 0;

	objFor = document.getElementById(objInput.htmlFor);
	forVal = objInput.htmlFor;

	if ( ! objFor )
	{
		return true;
	}

	if ( objFor.type == 'radio' )
	{
		if ( forVal.match('_else') )
		{
			forVal = forVal.replace('_else', '');
		}
		else
		{
			if ( ! document.getElementById(forVal + '_else') )
			{
				return true;
			}

			forVal += '_else';
		}
			
		objInput.htmlFor = forVal;
		document.getElementById(objInput.htmlFor).checked = true;
	}
	
	return false;
}
	
function sw_for_types()
{
	if ( ! document.getElementsByTagName )
	{
		return;
	}
	
	var for_tags = document.getElementsByTagName('label');
		
	for ( var i = 0 ; i < for_tags.length ; i++ )
	{
		if ( for_tags[i].htmlFor )
		{
			addEvent('document.getElementsByTagName(\'label\')[' + i + '].onclick', 'function() { sw_for_type(document.getElementsByTagName(\'label\')[' + i + ']); }');
		}
	}
	
	return;
}
	
function addEvent(event, eval_func)
{
	eval(event + ' = ' + eval_func + ';');
}
	
addEvent('window.onload', 'sw_for_types');