 function formeffect() {
		var els, el;
		var tags = ["input", "textarea"];
		for (var tag in tags) {
			els = document.getElementsByTagName(tags[tag]);
			for (var i = els.length; --i >= 0;) {
				el = els[i];
				el.onmouseover = events.GenericEvents.fields_onMOver;
				el.onmouseout = events.GenericEvents.fields_onMOut;
				el.onfocus = events.GenericEvents.fields_onFocus;
				el.onblur = events.GenericEvents.fields_onBlur;
				}
			}
		}
		
function events() {}

	events.GenericEvents = {
		fields_onMOver : function(ev) { try { Utils.addClass(this, "hover"); } catch(e){} },
		fields_onMOut : function(ev) { try { Utils.removeClass(this, "hover"); } catch(e){} },
		fields_onFocus : function(ev) { Utils.addClass(this, "active"); },
		fields_onBlur : function(ev) { Utils.removeClass(this, "active"); }
	};

function Utils(){}

	Utils.addClass=function(el,className){
		Utils.removeClass(el,className);
		el.className+=" "+className;
	};
	
	Utils.removeClass=function(el,className,add){
		if(el.className){
			var l=el.className;
			el.className=el.className.replace(Utils.getClassRE(className)," ");
			if(add)Utils.addClass(el,add);
			return l!=el.className;
		}
		el.className="";
		return false;
	};
	/*
	Utils.replaceClass=function(el,className,newClassName){
		if(el.className){var o=el.className;
		el.className=el.className.replace(Utils.getClassRE(className)," "+newClassName+" ");
		return o!=el.className;
		}
		return false;
	};
	*/

	Utils._re_classNames={};
	
	Utils.getClassRE=function(className){
		if(typeof className!="string")return className;
		var C=Utils._re_classNames;
		return(C[className])||(C[className]=new RegExp("(^|\\s+)"+className+"(\\s+|$)","i"));
	};
	

