FormHandler.validateForm = function() 
{
	var form = FormHandler.form;

	// enter key event handler
	if(FormHandler.focusedElement){
		var name = FormHandler.focusedElement.name
		if(name=='loginId' || name=='password'){
			form.submitAction.value = 'login';
		}
		else {
			form.submitAction.value = 'add';
		}
		FormHandler.focusedElement = null;
	}

	// check login values
	if(form.submitAction.value=='login') {
		if(!isValueUpdated(form.loginId)) {
			alert('Please enter your login id.');
		}
		else if(!isValueUpdated(form.password)) {
			alert('Please enter your password.');
		}
		else {
			return true;
		}
	}
	// check sign up values
	else if(form.submitAction.value=='add'){
		if(!isValueUpdated(form.email)){
			alert('Please enter email address.');
		}
		else if(!isValidEmail(form.email.value)){
			alert('Invalid email address.');
		}
		else if(!isValueUpdated(form.screenName)){
			alert('Please enter screen name.');
		}
		else if(form.screenName.value.length<4 || form.screenName.value.length>16){
			alert('Screen name must be between 4 and 16 characters');
		}
		else if(!form.screenName.value.match(/^[a-zA-Z0-9\._]+$/)){
			alert("Invalid Screen name.\nScreen name can only have dot,underscore, and alphanumeric characters.");
		}
		else if(form.country.value=='SELECT COUNTRY'){
			alert('Please select country.');
		}
		else if(!isValueUpdated(form.newPassword1) || !isValueUpdated(form.newPassword2)){
			alert('Please enter your password.');
		}
		else if(form.newPassword1.value.length<6){
			alert('Password must be at least 6 character long.');
		}
		else if(form.newPassword1.value != form.newPassword2.value){
			alert("Two passwords don't match.");
		}
		else if(form.captchaTotal.value==''){
			alert('Please enter sum of two numbers.');
		}
		else {
			return true;
		}
	}
	// error
	return false;
}

function onSubmit() {
	showPopUpPageBlocker();
}

function onComplete(res) {
	if(res.responseText==''){
		alert('Invalid password.');
		hidePopUpPageBlocker();
		return;
	}
	var result = json_decode(res.responseText);
	//var url = (redirectURL!='') ? redirectURL : window.location.pathname;
	if(result.isOK) {
		$style('errorMessage').display = 'none';
		
		if(window.onLoginSuccess) {
			onLoginSuccess();
		}
		else {
			if(result.id=='addNewUser'){
				window.location = 'ty_signUp.php';
			}
			else {
				window.reLoadPage();
			}
		}
		/*if(result.id=='addNewUser'){
			var form = FormHandler.form;
			if(window.location.pathname.indexOf('/forum/')!=-1){
				alert("Thank you for registering. We have sent you the link to activate your account at "+document.forms['signup'].email.value+".\nPlease check your email and activate the account by clicking on the link.");
				window.location.replace('/forum/');
			}
			else {
				window.location = 'ty_signup.php?email='+form.email.value;
			}
		}
		else if(window.reLoadPage){
			if(result.sid && result.sid!=''){
				var query = window.location.search;
				var newLoc = url+'?sid='+result.sid;
				
				if (query.substring(0, 1) == '?') {
					query = query.substring(1);
					var data = query.split('&');
					var newQuery = '';
					for(var i=0;i<data.length;i++){
						var vars = data[i].split('=');
						if(vars[0]!='sid'){
							newQuery += '&'+data[i];
						}
					}
					newLoc += newQuery;
				}
				window.location.replace(newLoc);
			}
			else {
				if(redirectURL)
					window.location.replace(url);
				else 
					reLoadPage();
			}
		}
		else if(result.sid && result.sid!=''){
			var query = window.location.search;
			var newLoc = url+'?sid='+result.sid;
			
			if (query.substring(0, 1) == '?') {
				query = query.substring(1);
				var data = query.split('&');
				var newQuery = '';
				for(var i=0;i<data.length;i++){
					var vars = data[i].split('=');
					if(vars[0]!='sid'){
						newQuery += '&'+data[i];
					}
				}
				newLoc += newQuery;
			}
			window.location.replace(newLoc);
		}
		*/
	}else {
		if(result.id=='addNewUser'){
			reloadImage($j('captchaDigit_0'));
			reloadImage($j('captchaDigit_1'));
			if($j('captchaTotal')){
				$j('captchaTotal').value = '';
			}
			alert(result.message);
			
			if(result.message.indexOf('Screen name')!=-1){
				//$style('screenName').color = '#c00a49';
				$j('screenName').className = 'error t_text';
			}
			else if($j('screenName').className.indexOf('error')==-1){
				//$style('screenName').color = '#000000';
				$j('screenName').className = 't_text';
			}
		}
		$j('errorMessage').innerHTML = '<span>SORRY !!</span><BR/>' + result.message;
		if($j('forgotPassword')){
			$style('forgotPassword').display = 'none';
		}
		$style('errorMessage').display = 'block';
		hidePopUpPageBlocker();
	}
}

function onForgotPassword() {
	var form = FormHandler.form;
	$style('errorMessage').display = 'none';
	$style('forgotPassword').display = 'block';
}

function retrievePassword(e) {
	if(isEnterKey(e)){
		return requestPassword();
	}
	return true;
}

function requestPassword() {
	doAJAXGet('/ajax/requestPassword.php', 'email='+$j('oEmail').value, 'onRequestPassword');
	return false;
}

function onRequestPassword(req){
	var result = json_decode(req.responseText);
	alert(result.message);
}

function onAfterPopUpCommand() {
	reLoadPage();
}

function getRandomScreenName(firstname)
{
	doAJAXGet('/ajax/getRandomScreenName.php','fn='+escape(firstname), 'onGetRandomScreenName');
	return false;
}

function screenNameExists(sn)
{
	doAJAXGet('/ajax/screenNameExists.php','sn='+escape(sn), 'onCheckScreenName');
	return false;
}
