
// Javascript global functions

var sexyForm_submitValidators = new Object();

function sexyForm_Init(webControlUniqueID, mode)
{	
	if (mode != ''){
		var obj = new Form.Validator(webControlUniqueID, {
							onFormValidate: function(passed, form, event) {
									if (!passed) {
										var advice = this.advice = createAdvice(form);
										showAdvice(form,advice);
									} else {
										if (this.advice){
											hideAdvice(this.advice);
										}
									}
							}
						});
	} else {
		var obj = new Form.Validator.Inline(webControlUniqueID, {errorPrefix:'',useTitles:true,scrollToErrorsOnSubmit:false,serial:false});
	}
	
	obj.submitted = false;
	
	sexyForm_submitValidators[webControlUniqueID] = obj;
}

function createAdvice(form){
	if(!form.advice) {
		form.advice = new Element('div', {
				html: form.getProperty('formtitle'),
				styles: { display: 'none', paddingBottom: '10px' }
			}).addClass('validation-advice');
	}
	var formFields = $(form).getElement('ol');
	form.advice.inject(formFields, 'after');
	return form.advice;
}

function showAdvice(form,advice){
	if (advice.reveal) advice.reveal();
	else advice.setStyle('display', 'block');
}

function hideAdvice(advice){
	if (advice){
		if (advice.dissolve) advice.dissolve();
		else advice.setStyle('display', 'none');
	}
}

function sexyForm_Submit(webControlUniqueID){

	var obj = sexyForm_submitValidators[webControlUniqueID];
	
	var validated = obj.validate();
	
	obj.submitted = true;
	
	if (!validated){
		return false;
	} else {
		var omnitureOnClickDescription = webControlUniqueID + ': Success';
		var eventNo;
		if (webControlUniqueID.contains('Login')){
			eventNo = 'event13';
		} else if (webControlUniqueID.contains('Registration')){
			eventNo = 'event17';
		}
		omniture_OnClickLogProps(omnitureOnClickDescription, "o", {prop10: omnitureOnClickDescription, evar12: omnitureOnClickDescription}, eventNo);
		modalSubmit(); // Function within common.js
	}
}

Form.Validator.add('validate-hgi-password', {
	errorMsg: 'Please enter at least 8 characters (letters and numbers only)',
	test: function(field){
		return Form.Validator.getValidator('IsEmpty').test(field) || ((/^.*(?=.{8,})(?=.*\d)(?=.*[A-Za-z_]).*$/).test(field.get('value')) && !(/\W/).test(field.get('value')));
	}
});


