/*************************************************************************
 Description:  Exweb Application Form Highlight JS
 Created:      September 2007
 Author:       Mike Hearfield
 Copyright:    Vertex Financial Services 2007, All Rights Reserved.
**************************************************************************/

	//====================================================================	
	var fieldsetOld = "";
	var fieldsetOldClass = "";
	var noOfAccounts = 1;	
	
	function formInit(){
	    var parentNode = $('divMain');
		if(!parentNode){
		    parentNode = $('divContent');
		}
		if (parentNode.id != undefined) {
			// Check to see if there is more than one fieldset on the page.
			var arr_fs_all = new Array();
			var arr_fs = new Array();
			arr_fs_all = document.getElementsByTagName("FIELDSET");

			if(arr_fs_all.length > 0){
				// remove any button fieldsets
				for(var i=0, j=arr_fs_all.length; i<j; i++){
					if(arr_fs_all[i].className.toLowerCase().indexOf("fsbuttons") == -1){
						arr_fs.push(arr_fs_all[i]);
					}
				}
				if(arr_fs.length >= 1){
					// set the listener and the old fieldset value
					addClass(arr_fs[0],"selected");
					fieldsetOld = arr_fs[0];
					// add an event listener to the inputs on the page
					var arr_fields = getMultipleElementsByTagName([ 'INPUT', 'SELECT', 'TEXTAREA' ], parentNode);
					for (var i = 0, j = arr_fields.length; i < j; i++) {	
						addEvent(arr_fields[i], 'focus', fieldsetListener, false);				
					}
				}			
			}
		}
	}
	addLoadEvent(formInit);
	//====================================================================	
	
	//====================================================================
	// Functions to highlight the current fieldset
	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 != null && e.nodeName.toLowerCase() != target && e.nodeName.toLowerCase() != 'html') {
			    e = e.parentNode;
		    }
		    return (e != null && e.nodeName.toLowerCase() == 'html') ? null : e;
		
	}
	//====================================================================	
	
	//====================================================================
	function fieldsetListener(e) {
		var target = window.event ? window.event.srcElement : e ? e.target : null;
		if (!target) { return; }

		target = ascendDOM(target, 'fieldset');
		if (target == null) {	return;	}
		
		if (target != fieldsetOld) {
				var oldClass = target.className;
				if(oldClass.length == 0){
					target.className = "selected";
				}else{
					target.className += " selected";
				}
				if(fieldsetOldClass.length == 0){
					fieldsetOld.className = fieldsetOldClass;
				}
		
				fieldsetOld = target;
				fieldsetOldClass = oldClass;
		}
	
		fieldsetOld = target;
	}

/*	function fieldsetBlurListener(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, 'fieldset');
		if (target == null) {	return;}
		
		var fieldsetClass = target.className.toLowerCase();
		fieldsetClass = fieldsetClass.replace("selected","");
		target.className = fieldsetClass.trim();
	}
*/

	//====================================================================	
	
	//====================================================================
	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;
	}
	//====================================================================	
		
