﻿GroupHighlight = function(tagName, className) {
	this.activeStyle = { isClass : false, cssData : "" };
	this.tagName = tagName;
	this.className = className;
	
	var allItems = document.getElementsByTagName(tagName);
	var items = [];
	
	for (var a = 0; a < allItems.length; a++) {
		if (allItems[a].className == className) items.push(allItems[a]);
	}
	
	var ref = this, c;
	items.forEach(function() {
		c = this.childNodes;
		for (var a = 0; a < c.length; a++) {
			if (c[a].nodeName.search(/(input|select|textarea)/gi) != -1) {
				if (c[a].addEventListener) {
					c[a].addEventListener("focus", ref.itemFocus, false);
					c[a].addEventListener("blur", ref.itemBlur, false);
				} else {
					c[a].attachEvent("onfocus", ref.itemFocus);
					c[a].attachEvent("onblur", ref.itemBlur);
				}
				
				c[a].parentNode.ghl = ref;
			}
		}
	});
};

GroupHighlight.prototype = {
	itemFocus : function() {
		var p;
		if (window.event) p = event.srcElement.parentNode;						
		else p = this.parentNode;
		
		var ghl = p.ghl;
			
		if (p.className.length != 0) p.priorName = p.className;
		p.priorCss = p.style.cssText;
		
		if (ghl.activeStyle.isClass) p.className = ghl.activeStyle.cssData;
		else p.style.cssText = ghl.activeStyle.cssData;
	},
	
	itemBlur : function() {
		var p;
		if (window.event) p = event.srcElement.parentNode;
		else p = this.parentNode;
		if (p.priorName.length != 0) {
			p.className = p.priorName;
			p.priorName = null;
		} 
		
		p.style.cssText = p.priorCss;
		p.priorCss = null;				
	},
	
	setActiveStyle : function(x) {
		this.activeStyle.isClass = (x.indexOf(":") == -1);
		this.activeStyle.cssData = x;
	}
};
