// JavaScript Document

function userCheckName(value)
{
	Element.show('usernameMsg');
	new Ajax.Request('bamboo/core/globalusers/ajax/ajax.username.php?username='+value, {
		method: 'get',
		onSuccess: function(transport){
			var msg = $('usernameMsg');           
			if(transport.responseText.match(/yes/))	{
				msg.update('Sorry this username has been taken.');
				msg.className = 'userFormItemError';
			}
			else{
				msg.update('<img alt="checking..." src="/bamboo/core/globalusers/images/ajax-loader.gif" align="middle"/>');
				Element.hide('usernameMsg');
				msg.className = 'userMessageBox';
			}
		}
		
	});
}

function userCheckEmailUpdate(value, emailobj, userid)
{
	Element.show('emailMsg');
	new Ajax.Request('bamboo/core/globalusers/ajax/ajax.email.php?email='+value+'&userid='+userid, {
		method: 'get',
		onSuccess: function(transport){
			var msg = $('emailMsg');            
			if(transport.responseText.match(/yes/))	{
				msg.update('Sorry this Email address is already in use.');
				msg.className = 'userFormItemError';
			}
			else{
				msg.update('<img alt="checking..." src="/bamboo/core/globalusers/images/ajax-loader.gif" align="middle"/>');
				Element.hide('emailMsg');
				msg.className = 'userMessageBox';  
				validateEmail(emailobj, 'emailMsg', 'userFormEmail', 'Please enter a valid email address.');
			}
		}
		
	});
	
}

function userCheckEmail(value, emailobj)
{
	Element.show('emailMsg');
	new Ajax.Request('bamboo/core/globalusers/ajax/ajax.email.php?email='+value, {
		method: 'get',
		onSuccess: function(transport){
			var msg = $('emailMsg');
			var container = $('userFormEmail');
			if(transport.responseText.match(/yes/))	{
				msg.update('Sorry this Email address is already in use.');
				msg.className = 'userFormItemError';
			}
			else{
				msg.update('<img alt="checking..." src="/bamboo/core/globalusers/images/ajax-loader.gif" align="middle"/>');
				Element.hide('emailMsg');
				msg.className = 'userMessageBox';
				validateEmail(emailobj, 'emailMsg', 'userFormEmail', 'Please enter a valid email address.');
			}
		}
		
	});
	
}

function echeck(str) 
{
	var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		   return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    return false
		 }
		
		 if (str.indexOf(" ")!=-1){
		    return false
		 }

 		 return true					
}
	
function validateEmail(field, msgbox, container, msgtext)
{
	var msg = $(msgbox);
	var container = $(container);
	if(!echeck(field.value)){		
		msg.update(msgtext);
		Element.show(msgbox);
		msg.className = 'userFormItemError';
		return false;
	}else
	{		
		msg.update('.');
		Element.hide(msgbox);
		msg.className = 'userMessageBox';
		return true;
	}
}

function validateLength(field, msgbox, container, msgtext)
{
	var msg = $(msgbox);
	var container = $(container);
	if(field.value.length < 3){		
		msg.update(msgtext);
		Element.show(msgbox);
		msg.className = 'userFormItemError';
		return false;
	}else
	{		
		msg.update('.');
		Element.hide(msgbox);
		msg.className = 'userMessageBox';
		return true;
	}
}

function validatePassword(field, msgbox, container, msgtext)
{
	var msg = $(msgbox);
	var container = $(container);
	if(field.value.length < 8){		
		msg.update(msgtext);
		Element.show(msgbox);
		msg.className = 'userFormItemError';
		return false;
	}else
	{		
		msg.update('.');
		Element.hide(msgbox);
		msg.className = 'userMessageBox';
		return true;
	}
}

function repeatPassword(field, field2, msgbox, container, msgtext)
{
	var msg = $(msgbox);
	var container = $(container);
	if(field.value ==  field2.value){		
		msg.update('.');
		Element.hide(msgbox);
		msg.className = 'userFormItem';
		return true;
	}else
	{	
		msg.update(msgtext);
		Element.show(msgbox);
		msg.className = 'userMessageBox';
		return false;
				
	}
}

function checkCheckbox(field, msgbox, container, msgtext)
{
	var msg = $(msgbox);
	var container = $(container);
	if(!field.checked){		
		msg.update(msgtext);
		Element.show(msgbox);
		msg.className = 'userFormItemError';
		return false;
	}else
	{		
		msg.update('.');
		Element.hide(msgbox);
		msg.className = 'userMessageBox';
		return true;
	}	
}


function checkUserFields(fmobj)
{	
	var stopform = true;
	if(!validateLength(fmobj.username, 'usernameMsg', 'userFormUsername', 'Please enter a username.')){stopform = false;}
	if(!validateLength(fmobj.firstname, 'firstnameMsg', 'userFormFirstname', 'Please enter a first name.')){stopform = false;}
	if(!validateLength(fmobj.lastname, 'lastnameMsg', 'userFormLastname', 'Please enter a last name.')){stopform = false;}
	if(!validateEmail(fmobj.email, 'emailMsg', 'userFormEmail', 'Please enter a valid email address.')){stopform = false;}
	if(!validatePassword(fmobj.password, 'passwordMsg', 'userFormPassword', 'Please password of at least 8 characters.')){stopform = false;}
	if(!validatePassword(fmobj.password2, 'password2Msg', 'userFormPassword2', 'Please password of at least 8 characters.')){stopform = false;}
	if(!repeatPassword(fmobj.password, fmobj.password2,'password2Msg', 'userFormPassword2', 'Please make sure your passwords match.')){stopform = false;}
	if(!checkCheckbox(fmobj.terms ,'termsMsg', 'userFormTerms', 'Please read the terms and conditions.')){stopform = false;}
	return stopform;
}

function checkUserFieldsUpdate(fmobj)
{	
	var stopform = true;
	if(!validateLength(fmobj.firstname, 'firstnameMsg', 'userFormFirstname', 'Please enter a first name.')){stopform = false;}
	if(!validateLength(fmobj.lastname, 'lastnameMsg', 'userFormLastname', 'Please enter a last name.')){stopform = false;}
	if(!validateEmail(fmobj.email, 'emailMsg', 'userFormEmail', 'Please enter a valid email address.')){stopform = false;}
	return stopform;
}


