/*
	Exweb Login JS
	Mike Hearfield
	September 2007
*/

	//==================================================================== FORM FIELD HIGHLIGHTING
	var formOld = "";
	var formOldClass = "";

	function formInit(){
		var arr_fields = getMultipleElementsByTagName([ 'INPUT', 'SELECT', 'TEXTAREA' ], $('div_body'));	
		for (var i = 0, j = arr_fields.length; i < j; i++) {	
			addEvent(arr_fields[i], 'focus', formHighlightListener, false);				
			addEvent(arr_fields[i], 'blur', formBlurListener, false);				
		}
	}
	addLoadEvent(formInit);

	function formHighlightListener(e) {
		var target = window.event ? window.event.srcElement : e ? e.target : null;
		if (!target) { return; }

		target = ascendDOM(target, 'form');
		if (target == null) {	
			return;
		}else{
			var formDiv = ascendDOM(target, 'div');
			
			if (formDiv != formOld) {
				var oldClass = formDiv.className;
				if(oldClass.length == 0){
					formDiv.className = "selected";
				}else{
					formDiv.className += " selected";
				}
				if(formOldClass.length == 0){
					formOld.className = formOldClass;
				}
		
				formOld = formDiv;
				formOldClass = oldClass;
			}
		}
	}

	function formBlurListener(e) {
		// we're in the same form but need to clear the bg
		var target = window.event ? window.event.srcElement : e ? e.target : null;
		if (!target) { return; }

		target = ascendDOM(target, 'form');
		if (target == null) {	
			return;
		}else{
			var formDiv = ascendDOM(target, 'div');
			var formClass = formDiv.className.toLowerCase();
			formClass = formClass.replace("selected","");
			formDiv.className = formClass.trim();
			formOld = "";
			formOldClass = "";
		}
	}

	//====================================================================	
	
	//====================================================================

	function addEvent(obj, evType, fn, useCapture) {
		if (obj.addEventListener) {
			obj.addEventListener(evType, fn, useCapture);
			return true;
		} else if (obj.attachEvent) {
			var r = obj.attachEvent('on' + evType, fn);
			return r;
		} else {
			obj['on' + evType] = fn;
		}
	}

	function ascendDOM(e, target) {
		while (e.nodeName.toLowerCase() != target && e.nodeName.toLowerCase() != 'html') {
			e = e.parentNode;
		}
		return (e.nodeName.toLowerCase() == 'html') ? null : e;
	}

	function getMultipleElementsByTagName(tagNames, parentNode) {
		var out = new Array();
		for( var i = 0, j = tagNames.length; i < j; i++ ) {
			elementsFound =	parentNode.getElementsByTagName(tagNames[i]);
			for (var k = 0, l = elementsFound.length; k < l; k++)
				out.push( elementsFound.item(k) );
		}
		return out;
	}
	//====================================================================		