/* SignUpForm
----------------------------------------------------------------------------------------*/	
var SignUpForm = Class.create({
	initialize: function(form) {
		this.form = $(form);
		this.setup();
	},
	setup: function() {
		this.form.observe('submit', this.onSubmit.bindAsEventListener(this));
	},
	onSubmit: function(event) {
		this.validator = new Validation(this.form,{ onSubmit: false });
		if (!this.validator.validate()) {
			event.stop();
		}
	}
});

/* signIn
----------------------------------------------------------------------------------------*/	
function signIn(){
	//var userLoginId = document.login_form.USERNAME.value;
	var userLoginId = $('login_form').getInputs('text', 'USERNAME')[0].value;
	var validator = new Validation('login_form',{onSubmit: false});
	var isValid = validator.validate();
	if(isValid){
		//document.login_form.USERNAME.value = userLoginId.toLowerCase();
		$('login_form').getInputs('text', 'USERNAME')[0].value = userLoginId.toLowerCase();
		return true;
	}else{
		return false;
	}
}


/* forgot Password
-------------------------------------------------------------------------------------------*/
function fotgotPassword(){
	var userLoginId = $('forgotPassword_form').getInputs('text', 'USERNAME')[0].value;
	var validator = new Validation('forgotPassword_form',{onSubmit: false});
	var isValid = validator.validate();
	if(isValid){
		$('forgotPassword_form').getInputs('text', 'USERNAME')[0].value = userLoginId.toLowerCase();
		return true;
	}else{
		return false;
	}
}

/* TrackOrderForm (customer service)
-------------------------------------------------------------------------------------------*/
var TrackOrderForm = Class.create({
	initialize: function(form) {
		this.form   = $(form);
		this.button = this.form.down('.btn_common_gray');
		this.setup();
	},
	setup: function() {
		this.form.observe('submit', this.onSubmit.bindAsEventListener(this));
		if (this.button) {
			this.button.observe('click', this.onSubmit.bindAsEventListener(this));
			this.button.show();
		}
	},
	onSubmit: function(event) {
		if (typeof(this.validator) == 'undefined') {
		 	this.validator = new Validation(this.form);
		}
		if (!this.validator.validate()) {
			//alert('Please enter your order # and e-mail address to track your order.');
			event.stop();
		}
	}
});

/* SurveyForm (checkout receipt)
-------------------------------------------------------------------------------------------*/
var SurveyForm = Class.create({
	initialize: function(form, thanks) {
		this.form   = $(form);
		this.thanks = $(thanks)
		this.setup();
	},
	setup: function() {
		this.form.observe('submit', this.onSubmit.bindAsEventListener(this));
	},
	onSubmit: function(event) {
		this.validator = new Validation(this.form, { onSubmit: false });
		if (this.validator.validate()) {
			var params = Form.serialize(this.form);
			params = params.replace('E-Mail%20Address', '');
			new Ajax.Request('/pex/control/rateExpsurvey', {
				method:     'post',
				parameters: params,
				onComplete: function(transport, json) {
					if (json.status == 'SUCCESS') {
						this.form.hide();
						this.thanks.show();
					}
				}.bind(this)
			});
		}
		event.stop();
	}
});

/*  Contact Us
-------------------------------------------------------------------------------------------*/
function validateContact(){
	var userLoginId = $('contact_us_form').getInputs('text', 'emailAddress')[0].value;
	Validation.add('validate-number', 'Phone Number must be at least 10 characters long.', {
		   minLength : 10
		});
	var validator = new Validation('contact_us_form',{onSubmit: false});

	//Begin:PXP315:Beautify dropdowns:04/05/2011:Hai
	var isValid = validator.validate() && $('subject').value != '';

	var styledSubjectUl = $('contact_us_form').down('ul.custom');
	styledSubjectUl.removeClassName('error');
	styledSubjectUl.up('div.field').removeClassName('validation-failed');
	if ($('subject').value == '') {
		styledSubjectUl.addClassName('error');
		styledSubjectUl.up('div.field').addClassName('validation-failed');
		if ($('advice-required-subject').style.display == 'none') {
			new Effect.Appear($('advice-required-subject'), {duration : 1 });
		}
	} else {
		$('advice-required-subject').style.display = 'none';
	}
	//End:PXP315:Beautify dropdowns:04/05/2011:Hai

	if(isValid){
		$('contact_us_form').getInputs('text', 'emailAddress')[0].value = userLoginId.toLowerCase();
		$('contact_us_form').submit();
	}	
}

/*----------------------------------------------------------------------------------------*/

document.observe('dom:loaded', function() {
	$('trigger_pw', 'trigger_pw_login', 'trigger_pw_message').each(function(trigger) {
		if (trigger) {
			new ForgotPassword(trigger, $('overlay_pw'));
		}
	}.bind(this));
	
	if ($('sign_up_form')) {
		new SignUpForm('sign_up_form');
	}
	
	if ($('track_order_form')) {
		new TrackOrderForm('track_order_form');
	}
	
	if ($('survey_form')) {
		new SurveyForm('survey_form', 'survey_thanks');
	}
	
	Validation.addAllThese([
		['validate-prompt', 'This is a required field.', {
			notOneOf: ['Order #', 'E-Mail Address', 'Comments']
		}],
		['validate-password', 'Password must be at least 5 characters long.', {
			minLength : 5
		}],
		['validate-passwords-match', 'The passwords you entered do not match.', {
			equalToField: 'new_password'
		}]
	]);
	
});
