//sign up
var signup = new Object();

signup.errorField = null;

signup.signupFormInit = function (form, focusField) {
	form.onkeyup = function(evt) {
		var crossEvent = (evt)? evt : event;
		var keyCode = crossEvent.keyCode;
		if(keyCode == 13) {
			if (util.isIE()) {
				signup.signupFormSubmit(form.id);
				return;
			}
			if (signup.errorField == null) {
				signup.signupFormSubmit(form.id);
			} else {
				$(signup.errorField).focus()
				signup.errorField = null;
			}
		}
	}

	$(focusField).focus();
}

signup.signupFormSubmit = function(formName) {
	var form = $(formName);
	
	var account = form.account.value.strip();
	var password = form.password.value.strip();
	var passwordConfirmation = form.passwordConfirmation.value.strip();
	var firstname = form.firstname.value.strip();
	var lastname = form.lastname.value.strip();
	var secondaryEmail = form.secondaryEmail.value.strip();
	//var secretQuestion = form.secretQuestion.value.strip();
	//var answer = form.answer.value.strip();
	var verificationCode = form.verificationCode.value.strip();
	var acceptTOS = form.acceptTOS.checked;

	
	if(validation.isEmpty(account)) {
		signup.errorField = 'account';
		popup.popItUp(null, jsVals.jalert.signupEmailRequired, null,155, '.account');
	} else if (!validation.isValidiRaveAccountName(account)) {
		signup.errorField = 'account';
		popup.popItUp(null, 'iRave username is invalid.', null,155, '.account');
	}
	else if(validation.isEmpty(password)) {
		signup.errorField = 'password';
		popup.popItUp(null, jsVals.jalert.signupPassRequired, null,155, '.password');
	}
	else if (password.length <= PASSWORD_LENGTH_FOR_SIGNUP) {
		signup.errorField = 'password';
		popup.popItUp(null, 'Minimum length of password is ' + (PASSWORD_LENGTH_FOR_SIGNUP+1) + ' characters.', null,155, '.password');
	}
	else if(password != passwordConfirmation) {
		signup.errorField = 'passwordConfirmation';
		popup.popItUp(null, 'Your passwords do not match.', null,155, '.passwordConfirmation');
	}
	else if(validation.isEmpty(firstname)) {
		signup.errorField = 'firstname';
		popup.popItUp(null, 'Please enter your first name.', null,155, '.firstname');
	}
	else if(validation.isEmpty(lastname)) {
		signup.errorField = 'lastname';
		popup.popItUp(null, 'Please enter your last name.', null,155, '.lastname');
	}
	else if(validation.isEmpty(secondaryEmail)) {
		signup.errorField = 'secondaryEmail';
		popup.popItUp(null, 'Please enter your alternate email address.', null,155, '.secondaryEmail');
	}
	else if(!validation.isEmpty(secondaryEmail) && !validation.isValidEmail(secondaryEmail)) {
		signup.errorField = 'secondaryEmail';
		popup.popItUp(null, 'Alternate email address is not properly formatted.', null,155, '.secondaryEmail');
	}
	else if(account == secondaryEmail) {
		signup.errorField = 'secondaryEmail';
		popup.popItUp(null, 'Secondary email must be different with primary email.', null,155, '.secondaryEmail');
	}
	/*else if(secretQuestion > 0 && validation.isEmpty(answer)) {
		signup.errorField = 'answer';
		popup.popItUp(null, jsVals.jalert.secretQuestionAnswerRequired, null,155, '.secretQuestion');
	}
	else if(secretQuestion > 0 && answer.length < 8) {
		signup.errorField = 'answer';
		popup.popItUp(null, 'Minimum length of Secret question\'s answer is  8 characters.', null,155, '.answer');
	}*/
	else if(validation.isEmpty(verificationCode)) {
		signup.errorField = 'verificationCode';
		popup.popItUp(null, jsVals.jalert.signupVerRequired, null,155, '.verificationCode');
	}
	else if(!acceptTOS) {
		signup.errorField = 'acceptTOS';
		popup.popItUp(null, jsVals.jalert.signupAgreeRequired, null,155, '.acceptTOS');
	}
	else {
		signup.errorField = null;
		form.submit();
	}
}

signup.focusField = function(el) {
	$(el).focus();
}

signup.buildAddresses = function(textObj){
	var str = $('account').value.replace(/[^\w\d-]/ig, '');
	$('email').innerHTML = str;
	$('url').innerHTML = str;

	signup.displayEmailURL();
}
signup.filterKey = function(event){
	var keyCode = window.event ? window.event.keyCode : event ? event.which : 0;
	if (keyCode >= 32 && keyCode < 127) {
		var ch = String.fromCharCode(keyCode);
		ch = ch.toLowerCase();
		var pattern = /[a-z0-9\-]/;
		if (!pattern.test(ch)) {
			Event.stop(event);
		}
	}
}

signup.displayEmailURL = function(){
	if( $('account').value.length > 0 ){
		$('divDisplay').style.display = 'block';
	}else{
		$('divDisplay').style.display = 'none';
	}
}

signup.checkAvailability = function(){
	var emailValue = $('account').value.strip();
	var pattern = /\w[\w\d\-]*/;

	if (validation.isEmpty(emailValue)) {
		popup.popItUp(null, jsVals.jalert.mailRequired, 350, 155, 'signup.account')

	}else if (!validation.isValidiRaveAccountName(emailValue)) {		
		popup.popItUp(null, 'iRave username is invalid.', 350,155, 'signup.account');
	}else
		if (!validation.checkMinLen(emailValue, 2)) {
			popup.popItUp(null, jsVals.jalert.mailLength, 350, 155, 'signup.account')
		}else
			if (!pattern.test(emailValue)) {
				popup.popItUp(null, jsVals.jalert.mailInvalid, 350, 155, 'signup.account')
			}else {

				var url = util.buildHref('signUpCheckAvailability', {username:emailValue});

				new Ajax.Request(url, {
					onSuccess: function(transport){
						var result = transport.responseText;
						popup.popItUp(null, result, 350, 170, 'signup.account');
					}
				});
			}
}

signup.checkTOS = function(formName){
	var form = $(formName);
	if(form.acceptTOS.checked)
		form.acceptTOS.checked = false;
	else
		form.acceptTOS.checked = true;
}
