/*
 *	Used by productSignUp.jsp and multiOPproduct.jsp
 * 	When user submits form, one of fromConfirm(), fromSign(), or fromSignedIn() is invoked, assigning the correct
 *	action URL and submit button name (used by servlet to identify which route to take)
 */

var subscribe = {
	isMultiOP : false,
	url : null, // must be set by containing pages
	urls : { 	// two sets of alert creation actions
		norm : {
			confirmPhone : '/subscribe/confirm-phone/',
			signIn : '/subscribe/sign-in/',
			signedIn : '/subscribe/signed-in/'
		},
		multiOP : {
			confirmPhone : '/subscribe/confirm-phone-multi-op/',
			signIn : '/subscribe/sign-in-multi-op/',
			signedIn : '/subscribe/signed-in-multi-op/'
		}
	},
	fromConfirm : function() {
		_gel('frmCreateAlert').configObj = subscribe.validate.fromConfirm;
		_gel('frmCreateAlert').action = Util.baseUrl + subscribe.url.confirmPhone;
		_gel('btnSubmit').name = 'action:createAlertConfirm'+(subscribe.isMultiOP?'MultiOP':'');
	},
	fromSignIn : function() {
		_gel('frmCreateAlert').configObj = subscribe.validate.fromSignIn;
		_gel('frmCreateAlert').action = Util.baseUrl + subscribe.url.signIn;
		_gel('btnSubmit').name = 'action:createAlertLogin'+(subscribe.isMultiOP?'MultiOP':'');
	},
	fromSignedIn : function() {
		_gel('frmCreateAlert').configObj = subscribe.validate.fromSignedIn;
		_gel('frmCreateAlert').action = Util.baseUrl + subscribe.url.signedIn;
		_gel('btnSubmit').name = 'action:createAlert'+(subscribe.isMultiOP?'MultiOP':'');
	},
	submit : function(fromWhich) {
		subscribe[fromWhich]();
		//alert(_gel('frmCreateAlert').action);
		_gel('btnSubmit').click();
	},
	validate : {
		fromConfirm : [
			{ fld:'msisdn', lbl:'your phone number', mergeFromFlds:['phone1','phone2','phone3'], req:[{cmd:'required'},{cmd:'phone', err:'Please enter a valid phone number.'}] }
		],
		fromSignIn: [
			{ fld:'j_username', lbl:'your username', req:[{cmd:'required'},{cmd:'email', err:'Your username must be a valid email address.'}] },
			{ fld:'j_password', lbl:'your password', req:[{cmd:'required'}] }
		],
		fromSignedIn: [ ]
	}
}
subscribe.url = subscribe.urls.norm;

var valConfig = [];
var validation = new Validation('AlertForm', valConfig);

document.AlertForm.customValidator = function() {
	if (!_isVar('customValidation')) return true;
	var error = null, arrVals = customValidation;
	for (var i=0; i<arrVals.length; i++) {
		var el = arrVals[i];
		if (el.fn()) { 
			error = el.err;
			if (el.foc) _foc(el.foc);
			break; 
		}
	}
	if (error) alert(error);
	return error == null;
}

// RSS, Craigslist, and Personal Reminder alert sign up pages use more complicated input validations
if (_isVar('validateInput')) document.AlertForm.customValidator = validateInput;

//addLoadEvent(function() { if (_gel('ph1') && !isIE) _foc('ph1'); });