/*  Form v1.0a by ® Michael Mally               */
/*  Homepage: www.mally.at                      */
/*  E-Mail:   office@mally.at                   */
/*  Licensed only for www.mally.at              */
/*  unauthorized use is not allowed             */
/*  if you want to use this script e-mail me !! */


/*  Script muss nach den Stylesheets geladen werden !! */


//alle Style ermitteln
var AllStyles = new getAllStyles();

//setzt die events für alle formularfelder
//verwendet entweder die styleklasse _hl oder wenn vorhanden alteklasse+_hl
function init()
{
	for (var j=0;j<document.forms.length;j++)
	{
		for (var i=0;i<document.forms[j].elements.length; i++)
		{
			document.forms[j].elements[i].onfocus=function () { this.className=StyleExists(this.nodeName,this.className+"_hl") ? this.className+"_hl" : this.className+" hl"; }
			document.forms[j].elements[i].onblur=function () { this.className=this.className.substr(0,this.className.length-3); }
		}
	}
}

//ermittelt alle Styles und gibt ein Array mit den Namen zurück (zB td.klasse)
function getAllStyles()
{
	if (!document.styleSheets)
	{ return null; }

	var ret=new Array();
	for (var i=0; i<document.styleSheets.length; i++)
	{
		var rules = document.styleSheets[i].rules ? document.styleSheets[i].rules : document.styleSheets[i].cssRules;
		for (var j=0; j<rules.length; j++)
		{ ret[ret.length] = rules[j].selectorText.toLowerCase(); }
	}
	return ret;
}


//prüft ob ein Styleklasse existiert
function StyleExists(Node,Style)
{
	if (!Style)
	{ return false; }
	
	Node=Node.toLowerCase();
	Style=Style.toLowerCase();

	for (var i=0; i<AllStyles.length; i++)
	{	
		if (AllStyles[i]=="."+Style || AllStyles[i]==Node+"."+Style)
		{	return true; break; }
	}
}

//selektiert das angegebene oder das 1. elemtent im formular
function setfocus(select)
{
	if (select)
	{
		var element=document.getElementsByName(select)[0] ? document.getElementsByName(select)[0] : document.getElementsById(select)[0];
		element.focus();
	}
	else
	{ document.forms[0].elements[0].focus(); }
}


//in entwicklung (wird nicht verwendet)
function handleEnter (event)
{
	var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
	var feld = (e.target) ? e.target : e.srcElement;
	alert(feld+"! "+feld.form.elements[0]);
	if (keyCode==13)
	{
		var i;
		for (i=0; i<field.form.elements.length; i++)
			if (feld == feld.form.elements[i])
			{	break; }
			i=(i+1) % field.form.elements.length;
			if (field.form.elements[i].type!="textbox")
			{	field.form.elements[i].focus(); }
			
			return false;
	} 
	else
	{	return true; }
}
