function buildList(hash){
	errors = new Element('ul');
	hash.each(function(error, field){
		errors.adopt(new Element('li',{'html':"<b>"+field+"</b>" + ":"+ error }));
	});
	return errors;
	
}
window.addEvent('domready', function(e){
	var formName =$('<?php echo $formName; ?>');
	var hash = new Hash(); 
	if(formName){
		var formLog = $('<?php echo $formName; ?>-log');
		var fv = new FormValidator(formName);
		formName.addEvent('click', function(e){
			if(formLog)
				formLog.fade('hide');
		});
		
		fv.getFields().addEvent('blur', function(e){s = "";});
		fv.addEvent('elementPass', function (element){
			element.setStyle('background-image', 'none');
			if(formLog){
				log.fade('out').set('html', "");
				hash.erase(element.get('alt'));
			}
		});
		fv.addEvent('elementFail', function(element, validators){
			var s = "";
			validators.each(function(validator){
				var error = fv.getValidator(validator).getError(); 
				s += error;
				hash.set(element.get('alt'), error);
			});
			if(formLog){
				log.set('html', "");
				log.adopt(buildList(hash));
				log.show();
				log.fade('in');
			}
			element.highlight("#F00");
			element.setStyle('background-image', 'url(/images/forms/error.gif)');
			element.setStyle('background-position', 'right center');
			element.setStyle('background-repeat', 'no-repeat');
			
		});
		fv.addEvent('formValidate', function (passed, form, submit){
			if(passed && formLog){
				formLog.fade('hide').set('html', '');	
			}else if(!passed && formLog){
				formLog.set('html', "");
				formLog.adopt(buildList(hash));
				formLog.show();
				formLog.fade('in');
			}else if(formLog){
				formLog.fade('out');
				//formName.addEvent('submit', function(e){e.stop();});
			}
		});
	}
});




function buildList(hash){
	errors = new Element('ul');
	hash.each(function(error, field){
		errors.adopt(new Element('li',{'html':"<b>"+field+"</b>" + ":"+ error }));
	});
	return errors;
	
}
window.addEvent('domready', function(e){
	var formName =$('<?php echo $formName; ?>');
	var hash = new Hash(); 
	if(formName){
		var formLog = $('<?php echo $formName; ?>-log');
		var fv = new FormValidator(formName);
		
		
		fv.addEvent('elementPass', function (element){
			element.setStyle('background-image', 'none');
			if(formLog){
				formLog.set('html', "");
				hash.erase(element.get('alt'));
				formLog.adopt(buildList(hash));
				formLog.show();
				formLog.fade('in');
			}
		});
		fv.addEvent('elementFail', function(element, validators){
			var s = "";
			validators.each(function(validator){
				var error = fv.getValidator(validator).getError(element); 
				s += error+"<bt />";
			});
			hash.set(element.get('alt'), s);
			if(formLog){
				formLog.set('html', "");
				formLog.adopt(buildList(hash));
				formLog.show();
				formLog.fade('in');
			}
			element.highlight("#F00");
			element.setStyle('background-image', 'url(/images/forms/error.gif)');
			element.setStyle('background-position', 'right center');
			element.setStyle('background-repeat', 'no-repeat');
			
		});
		fv.addEvent('formValidate', function (passed, form, submit){
			if(passed && formLog){
				formLog.fade('hide').set('html', '');	
			}else if(!passed && formLog){
				formLog.set('html', "");
				formLog.adopt(buildList(hash));
				formLog.show();
				formLog.fade('in');
			}else if(formLog){
				formLog.fade('out');
			}
		});
	}
});


