addEvent(window,'load',initForm);

var highlight_array=new Array();

function initForm()
{
	initializeFocus();
}

function initializeFocus()
{
	fields=getElementsByClassName(document,"*","field");
	for(i=0;i<fields.length;i++)
	{
		if(fields[i].type=='radio'||fields[i].type=='checkbox'||fields[i].type=='file')
		{
			fields[i].onclick=function()
			{
				clearSafariRadios();
				addClassName(this.parentNode.parentNode,"focused",true)
			};
			fields[i].onfocus=function()
			{
				clearSafariRadios();
				addClassName(this.parentNode.parentNode,"focused",true)
			};
			highlight_array.splice(highlight_array.length,0,fields[i]);
		}
		
		if(fields[i].className.match('addr'))
		{
			fields[i].onfocus=function()
			{
				clearSafariRadios();
				addClassName(this.parentNode.parentNode.parentNode,"focused",true)
			};
			fields[i].onblur=function()
			{
				removeClassName(this.parentNode.parentNode.parentNode,"focused")
			};
		}
		else
		{
			fields[i].onfocus=function()
			{
				clearSafariRadios();
				addClassName(this.parentNode.parentNode,"focused",true)
			};
			fields[i].onblur=function()
			{
				removeClassName(this.parentNode.parentNode,"focused")
			};
		}
	}
}

function addClassName(objElement,strClass,blnMayAlreadyExist)
{
	if(objElement.className)
	{
		var arrList=objElement.className.split(' ');
		if(blnMayAlreadyExist)
		{
			var strClassUpper=strClass.toUpperCase();
			for(var i=0;i<arrList.length;i++)
			{
				if(arrList[i].toUpperCase()==strClassUpper)
				{
					arrList.splice(i,1);
					i--;
				}
			}
		}

		arrList[arrList.length]=strClass;
		objElement.className=arrList.join(' ');
	}
	else
	{
		objElement.className=strClass;
	}
}

function removeClassName(objElement,strClass)
{
	if(objElement.className)
	{
		var arrList=objElement.className.split(' ');
		var strClassUpper=strClass.toUpperCase();
		for(var i=0;i<arrList.length;i++)
		{
			if(arrList[i].toUpperCase()==strClassUpper)
			{
				arrList.splice(i,1);
				i--;
			}
		}
		objElement.className=arrList.join(' ');
	}
}

function clearSafariRadios()
{
	for(var i=0;i<highlight_array.length;i++)
	{
		if(highlight_array[i].parentNode)
		{
			removeClassName(highlight_array[i].parentNode.parentNode,'focused');
		}
	}
}

function getElementsByClassName(oElm,strTagName,strClassName)
{
	var arrElements=(strTagName=="*"&&oElm.all)?oElm.all:oElm.getElementsByTagName(strTagName);
	var arrReturnElements=new Array();
	strClassName=strClassName.replace(/\-/g,"\\-");
	var oRegExp=new RegExp("(^|\\s)"+strClassName+"(\\s|$)");
	var oElement;
	
	for(var i=0;i<arrElements.length;i++)
	{
		oElement=arrElements[i];
		if(oRegExp.test(oElement.className))
		{
			arrReturnElements.push(oElement);
		}
	}

	return(arrReturnElements)
}

function addEvent(obj,type,fn)
{
	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]);
	}
	else
	{
		obj.addEventListener(type,fn,false);
	}
}