
function verifyResetPass()
{
	var formobj = document.forms['reset_form'];
	var pageData = new Array();
	pageData[0] = [ 'rp_email', formobj.rp_email.value ];
	pageData[1] = [ 'rp_name', formobj.rp_name.value ];
	pageData[2] = [ 'rp_surname', formobj.rp_surname.value ];
	var page = formobj.page.value;
	var pageback = formobj.pageback.value;
	var erMsg = '<strong>Please correct the following:</strong><br /><br />';
	var erInput = false;
	
	clearHighlight('rp');
	
	if (!validEmail(pageData[0][1]))
	{
		erMsg += 'Invalid email address.<br />'
		erInput = true;
		elHighlight('sp_email', 'txt-red11');
	}
	
	if (!validNamePart(pageData[1][1]))
	{
		erMsg += 'Invalid name.<br />'
		erInput = true;
		elHighlight('sp_name', 'txt-red11');
	}
	
	if (!validNamePart(pageData[2][1]))
	{
		erMsg += 'Invalid last name.<br />'
		erInput = true;
		elHighlight('sp_surname', 'txt-red11');
	}
	
	if (erInput)
	{
		elAll('f_rp_er_dis', erMsg, 'box-bgr-er', 'inline-block');
		return false;
	}
	else
	{
		elDisplay('f_rp_er_dis', 'none');
		disableBtn('btn-rp-sbmt', 'btn-disabled', 'Working...');
		s3accounts(page, 'rp', 'POST', pageData, pageback);	
	}
}

function verifyCode()
{
	var formobj = document.forms['verify_form'];
	var pageData = new Array();
	pageData[0] = [ 'v_code', formobj.v_code.value ];
	pageData[1] = [ 'v_password', formobj.v_password.value ];
	var page = formobj.page.value;
	var pageback = formobj.pageback.value;
	var erMsg = '<strong>Please correct the following:</strong><br /><br />';
	var erInput = false;
	
	clearHighlight('verify');
	
	if (pageData[0][1]=='')
	{
		erMsg += 'A code is required.<br />'
		erInput = true;
		elHighlight('sp_code', 'txt-red11');
	}
	
	if (pageData[1][1] == '')
	{
		erMsg += 'A password is required.<br />'
		erInput = true;
		elHighlight('sp_password', 'txt-red11');
	}
	
	if (erInput)
	{
		elAll('f_v_er_dis', erMsg, 'box-bgr-er', 'inline-block');
		return false;
	}
	else
	{
		elDisplay('f_v_er_dis', 'none');
		disableBtn('btn-v-sbmt', 'btn-disabled', 'Working...');
		s3accounts(page, 'verify', 'POST', pageData, pageback);	
	}
}

function verifyLogin()
{
	var formobj = document.forms['login_form'];
	var pageData = new Array();
	pageData[0] = [ 'l_id', formobj.l_id.value ];
	pageData[1] = [ 'l_pass', formobj.l_pass.value ];
	var page = formobj.page.value;
	var pageback = formobj.pageback.value;
	var erMsg = '<strong>Please correct the following:</strong><br /><br />';
	var erInput = false;
	
	clearHighlight('login');
	
	if (!validLoginId(pageData[0][1]))
	{
		erMsg += 'Invalid LOGIN ID.<br />'
		erInput = true;
		elHighlight('sp_loginid', 'txt-red11');
	}
	
	if (!validLoginPass(pageData[1][1]))
	{
		erMsg += 'Invalid PASSWORD.<br />'
		erInput = true;
		elHighlight('sp_loginpass', 'txt-red11');
	}
	
	if (erInput)
	{
		elAll('f_l_er_dis', erMsg, 'box-bgr-er', 'inline-block');
		return false;
	}
	else
	{
		elDisplay('f_l_er_dis', 'none');
		disableBtn('btn-l-sbmt', 'btn-disabled', 'Working...');
		s3accounts(page, 'login', 'POST', pageData, pageback);	
	}
}

function verifyRegistration(frm)
{
	var formobj = document.forms['register_form'];
	var pageData = new Array();
	pageData[0] = [ 'r_name', formobj.r_name.value ];
	pageData[1] = [ 'r_surname', formobj.r_surname.value ];
	pageData[2] = [ 'r_add1', formobj.r_add1.value ];
	pageData[3] = [ 'r_add2', formobj.r_add2.value ];
	pageData[4] = [ 'r_city', formobj.r_city.value ];
	pageData[5] = [ 'r_state', formobj.r_state.value ];
	pageData[6] = [ 'r_state_other', formobj.r_state_other.value ];
	pageData[7] = [ 'r_zip', formobj.r_zip.value ];
	pageData[8] = [ 'r_country', formobj.r_country.value ];
	pageData[9] = [ 'r_telephone', formobj.r_telephone.value ];
	pageData[10] = [ 'r_id', formobj.r_id.value ];
	pageData[11] = [ 'r_email', formobj.r_email.value ];
	if (frm=='update')
	{
		pageData[12] = [ 'r_pass', (formobj.r_pass.value) ];
		pageData[13] = [ 'r_ml', (formobj.r_ml.checked ? 'y' : 'n') ];
		pageData[14] = [ 'r_format', 'html' ];
		pageData[15] = [ 'r_current_email', (formobj.r_current_email.value) ];
		pageData[16] = [ 'r_current_country', (formobj.r_current_country.value) ];
		var frm = 'update';
		clearHighlight('update');
	}
	else if (frm=='register')
	{
		pageData[12] = [ 'r_pass', '' ];
		pageData[13] = [ 'r_ml', '' ];
		pageData[14] = [ 'r_format', '' ];
		pageData[15] = [ 'r_current_email', '' ];
		pageData[16] = [ 'r_current_country', '' ];
		var frm = 'register';
		clearHighlight('register');
	}
	var page = formobj.page.value;
	var pageback = '';
	var erMsg = '<strong>Please correct the following:</strong><br /><br />';
	var erInput = false;
	
	if (!validNamePart(pageData[0][1]))
	{
		erMsg += 'Your first name is required.<br />';
		erInput = true;
		elHighlight('sp_name', 'txt-red11');
	}
	
	if (!validNamePart(pageData[1][1]))
	{
		erMsg += 'Your last name is required.<br />';
		erInput = true;
		elHighlight('sp_surname', 'txt-red11');
	}
	
	if (!validAddressPart(pageData[2][1]))
	{
		erMsg += 'The street part of your address is required.<br />';
		erInput = true;
		elHighlight('sp_add1', 'txt-red11');
	}
	
	if (!validCity(pageData[4][1]))
	{
		erMsg += 'The city part of your address is required.<br />';
		erInput = true;
		elHighlight('sp_city', 'txt-red11');
	}
	
	if ((pageData[5][1]=='' || pageData[5][1].indexOf('outside') != -1) && pageData[6][1]=='')
	{
		erMsg += 'A state option is required or enter your state/province in the text box provided.<br />';
		erInput = true;
		elHighlight('sp_state', 'txt-red11');
		elHighlight('sp_state_other', 'txt-red11');
	}

	if ((pageData[5][1]=='' || pageData[5][1].indexOf('outside') != -1) && pageData[6][1]!='')
	{
		if (!validState(pageData[6][1]))
		{
			erMsg += 'A valid state/province name is required.<br />';
			erInput = true;
			elHighlight('sp_state', 'txt-red11');
			elHighlight('sp_state_other', 'txt-red11');
		}
	}
	
	if (!validZip(pageData[7][1]))
	{
		erMsg += 'A valid zip/postal code is required.<br />';
		erInput = true;
		elHighlight('sp_zip', 'txt-red11');
	}
	
	if (pageData[8][1]=='')
	{
		erMsg += 'A country option is required.<br />';
		erInput = true;
		elHighlight('sp_country', 'txt-red11');
	}
	
	if (!validTelephone(pageData[9][1]))
	{
		erMsg += 'A valid telephone number is required.<br />';
		erInput = true;
		elHighlight('sp_telephone', 'txt-red11');
	}
	
	if (!validLoginId(pageData[10][1]))
	{
		erMsg += 'Invalid login ID.  Between 6 and 30 alphanumeric characters.<br />';
		erInput = true;
		elHighlight('sp_id', 'txt-red11');
	}
	
	if (pageData[12][1] != '')
	{
		if (!validLoginPass(pageData[12][1]))
		{
			erMsg += 'Invalid login Password.  Between 6 and 30 letters and numbers.<br />';
			erInput = true;
			elHighlight('sp_id', 'txt-red11');
		}
	}
		
	if (!validEmail(pageData[11][1]))
	{
		if (frm == 'update')
		{
			erMsg += 'A valid emaill address is required.<br />';
		}
		else
		{
			erMsg += 'A valid emaill address is required.  Your password will be sent to this address.<br />';
		}
		erInput = true;
		elHighlight('sp_email', 'txt-red11');
	}
	
	if (erInput)
	{
		elAll('f_r_er_dis', erMsg, 'box-bgr-er', 'inline-block');
		return false;
	}
	else
	{
		elDisplay('f_r_er_dis', 'none');
		disableBtn('btn-r-sbmt', 'btn-disabled', 'Working...');
		s3accounts(page, frm, 'POST', pageData, pageback);	
	}
}

function clearHighlight(f)
{
	switch (f)
	{
		case 'login':
		
		elHighlight('sp_loginid', 'txt-light11');
		elHighlight('sp_loginpass', 'txt-light11');
		
		break;
		
		case 'register':
		
		elHighlight('sp_name', 'txt-light11');	
		elHighlight('sp_surname', 'txt-light11');
		elHighlight('sp_add1', 'txt-light11');
		elHighlight('sp_add2', 'txt-light11');
		elHighlight('sp_city', 'txt-light11');
		elHighlight('sp_state', 'txt-light11');
		elHighlight('sp_state_other', 'txt-light11');
		elHighlight('sp_zip', 'txt-light11');
		elHighlight('sp_country', 'txt-light11');
		elHighlight('sp_telephone', 'txt-light11');
		elHighlight('sp_id', 'txt-light11');
		elHighlight('sp_email', 'txt-light11');
		
		break;
		
		case 'update':
		
		elHighlight('sp_name', 'txt-light11');	
		elHighlight('sp_surname', 'txt-light11');
		elHighlight('sp_add1', 'txt-light11');
		elHighlight('sp_add2', 'txt-light11');
		elHighlight('sp_city', 'txt-light11');
		elHighlight('sp_state', 'txt-light11');
		elHighlight('sp_state_other', 'txt-light11');
		elHighlight('sp_zip', 'txt-light11');
		elHighlight('sp_country', 'txt-light11');
		elHighlight('sp_telephone', 'txt-light11');
		elHighlight('sp_id', 'txt-light11');
		elHighlight('sp_email', 'txt-light11');
		elHighlight('sp_password', 'txt-light11');
		
		break;
		
		case 'rp':
		
		elHighlight('sp_email', 'txt-light11');
		elHighlight('sp_name', 'txt-light11');
		elHighlight('sp_surname', 'txt-light11');
		
		break;
		
		case 'verify':
		
		elHighlight('sp_code', 'txt-light11');
		elHighlight('sp_password', 'txt-light11');
		
		break;
	}
}

function clearForm(f)
{
	switch (f)
	{
		case 'login':
		
		var formobj = document.forms['login_form'];
		formobj.l_id.value = '';
		formobj.l_pass.value = '';
		enableBtn('login', 'btn-l-sbmt', 'btn-common', 'Log In');
		
		break;
		
		case 'register':
		
		var formobj = document.forms['register_form'];
		formobj.r_name.value = '';
		formobj.r_surname.value = '';
		formobj.r_add1.value = '';
		formobj.r_add2.value = '';
		formobj.r_city.value = '';
		formobj.r_state.value = '';
		formobj.r_state_other.value = '';
		formobj.r_zip.value = '';
		formobj.r_country.value = '';
		formobj.r_telephone.value = '';
		formobj.r_id.value = '';
		formobj.r_email.value = '';
		enableBtn('register', 'btn-r-sbmt', 'btn-common', 'Register');
		
		case 'update':
		
		var formobj = document.forms['register_form'];
		formobj.r_name.value = '';
		formobj.r_surname.value = '';
		formobj.r_add1.value = '';
		formobj.r_add2.value = '';
		formobj.r_city.value = '';
		formobj.r_state.value = '';
		formobj.r_state_other.value = '';
		formobj.r_zip.value = '';
		formobj.r_country.value = '';
		formobj.r_telephone.value = '';
		formobj.r_id.value = '';
		formobj.r_email.value = '';
		formobj.r_pass.value = '';
		formobj.r_ml.checked = false;
		formobj.r_current_email.value = '';
		formobj.r_current_country.value = '';
		enableBtn('update', 'btn-r-sbmt', 'btn-common', 'Update');
		
		break;
		
		case 'rp':
		
		var formobj = document.forms['rest_form'];
		formobj.rp_email.value = '';
		formobj.rp_name.value = '';
		formobj.rp_surname.value = '';
		enableBtn('rp', 'btn-rp-sbmt', 'btn-common', 'Reset');
		
		break;
		
		case 'verify':
		
		var formobj = document.forms['verify_form'];
		formobj.v_code.value = '';
		formobj.v_password.value = '';
		enableBtn('verify', 'btn-v-sbmt', 'btn-common', 'Verify');
		
		break;
	}
}

function enableBtn(frm, btnId, btnClass, btnValue)
{
	var btnobj = document.getElementById(btnId);
	if (btnobj!=null)
	{ 
		btnobj.className = btnClass;
		btnobj.innerHTML = btnValue;
		
		if (frm=='login')
		{
			btnobj.onclick = function(){
				verifyLogin();
			}
		}
		else if (frm=='rp')
		{
			btnobj.onclick = function(){
				verifyResetPass();
			}
		}
		else if (frm=='verify')
		{
			btnobj.onclick = function(){
				verifyCode();
			}
		}
		else if (frm=='register')
		{
			btnobj.onclick = function(){
				verifyRegistration('register');
			}
		}
		else if (frm=='update')
		{
			btnobj.onclick = function(){
				verifyRegistration('update');
			}
		}
	}
}

function s3accounts(page, frm, method, pageData, pageBack)
{
	var s3accountsreq = new ajaxObject('/s3/ajax/request/accounts.php', s3accountsprocess);
	var postString = 'page='+page+'&frm='+frm;
	for (var i = 0; i < pageData.length; i++)
	{
		postString += '&'+pageData[i][0]+'='+encodeURIComponent(pageData[i][1]);
	}
	postString+='&pageback='+encodeURIComponent(pageBack);
	s3accountsreq.update(postString, method);
}

function s3accountsprocess(responseText, responseStatus)
{
	if (responseStatus==200)
	{
		//alert(responseText);
		var response = JSON.parse(responseText);
		
		Scroller.goToTop();
		
		switch (response.result)
		{
			case 'good':
			
				switch (response.items[0].form)
				{
					case 'login':
					
					if (response.items[0].pageback != '')
					{
						jumpto(decodeURIComponent(response.items[0].pageback));
						break;
					}
					elDisplay('master_wr', 'none');
					elAll('master_dis', 'You are now logged in to your SunSeaSky.com account', 'box-bgr-msg', 'inline-block');
					clearForm('login');
					Scroller.goToTop();
					
					break;	
					
					case 'register':
					
					var message = 'Thanks for registering an account with SunSeaSky.com!  ';
					message += 'We just sent you a confirmation email containing password to the email address you registered with us';
					message += '<br /><br /><a href="/accounts/login.html" title="Log In">Log In</a>';
					elDisplay('master_wr', 'none');
					elAll('master_dis', message, 'box-bgr-msg', 'inline-block');
					clearForm('register');
					Scroller.goToTop();
					
					break;
					
					case 'update':
					
					jumpto('/accounts/myaccount.html');
					
					break;
					
					case 'rp':
					
					elDisplay('master_wr', 'none');
					elAll('master_dis', 'A new password has been sent to your SunSeaSky.com email account.<br /><br /><a href="/accounts/login.html" title="Log In">Log In</a>', 'box-bgr-msg', 'inline-block');
					clearForm('rp');
					
					break;	
					
					case 'verify':
					
					var message = 'Your change of email address is now complete.  You can continue using your new email address';
					message += '<br /><br /><a href="/accounts/myaccount.html" title="My Account">My Account</a>';
					elDisplay('master_wr', 'none');
					elAll('master_dis', message, 'box-bgr-msg', 'inline-block');
					clearForm('verify');
					
					break;
					
					case 'messages':
					
					elDisplay(response.items[0].pageback, 'none');
					
					break;
				}
			
			break;
			
			case 'invalid':
			
				switch (response.items[0].form)
				{
					case 'login':
					
					elAll('f_l_er_dis', response.message, 'box-bgr-er', 'inline-block');
					enableBtn('login','btn-l-sbmt', 'btn-common', 'Log In');
					
					break;	
					
					case 'register':
					elAll('f_r_er_dis', response.message, 'box-bgr-er', 'inline-block');
					enableBtn('register', 'btn-r-sbmt', 'btn-common', 'Register');
					
					break;
					
					case 'update':
					
					elAll('f_r_er_dis', response.message, 'box-bgr-er', 'inline-block');
					enableBtn('update', 'btn-r-sbmt', 'btn-common', 'Update');
					
					break;
					
					case 'rp':
					
					elAll('f_rp_er_dis', response.message, 'box-bgr-er', 'inline-block');
					enableBtn('rp','btn-rp-sbmt', 'btn-common', 'Reset');
					
					break;
					
					case 'verify':
					
					elAll('f_v_er_dis', response.message, 'box-bgr-er', 'inline-block');
					enableBtn('verify','btn-v-sbmt', 'btn-common', 'Verify');
					
					break;
					
					case 'messages':
					
					elAll('f_m_er_dis', response.message, 'box-bgr-er', 'inline-block');
										
					break;
				}
			
			break;
			
			case 'error':
			
				switch (response.items[0].form)
				{
					case 'login':
					
					elAll('f_l_er_dis', response.message, 'box-bgr-er', 'inline-block');
					enableBtn('login', 'btn-l-sbmt', 'btn-common', 'Log In');
					
					break;	
					
					case 'register':
					
					elAll('f_r_er_dis', response.message, 'box-bgr-er', 'inline-block');
					enableBtn('register', 'btn-r-sbmt', 'btn-common', 'Register');
					
					case 'update':
					
					elAll('f_r_er_dis', response.message, 'box-bgr-er', 'inline-block');
					enableBtn('update', 'btn-r-sbmt', 'btn-common', 'Update');
					
					break;
					
					case 'rp':
					
					elAll('f_rp_er_dis', response.message, 'box-bgr-er', 'inline-block');
					enableBtn('rp', 'btn-rp-sbmt', 'btn-common', 'Reset');
					
					break;
					
					case 'verify':
					
					elAll('f_v_er_dis', response.message, 'box-bgr-er', 'inline-block');
					enableBtn('verify','btn-v-sbmt', 'btn-common', 'Verify');
					
					break;
					
					case 'messages':
					
					elAll('f_m_er_dis', response.message, 'box-bgr-er', 'inline-block');
										
					break;
				}
			
			break;
		}
	}
	else
	{
		elAll('master_wr', responseText + ' -- Error Processing Request', 'box-bgr-error-wide', 'inline-block');	
	}
}
