/**
* "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');