/*
*
*
* 	Hivetrader Signup/Login form validation
*
*
*/

/* Check the email field for correct format */
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 ValidateForm(){
	var emailID=document.frmSample.txtEmail
	
	if ((emailID.value==null)||(emailID.value=="")){
		alert("Please Enter your Email ID")
		emailID.focus()
		return false
	}
	if (echeck(emailID.value)==false){
		emailID.value=""
		emailID.focus()
		return false
	}
	return true
 }
$(function(){
					 
	// Add/Remove default/focus styling to inputs (need this for focus to work in IE6/7)
	$('.idleField input').focus(function(){
		$(this).parent().addClass('focusField');																		 
	});
	$('.idleField input').blur(function(){
		$(this).parent().removeClass('focusField');																		 
	});
	
	// Add/Remove default/focus styling to textarea (need this for focus to work in IE6/7)
	$('.idleField textarea').focus(function(){
		$(this).parent().addClass('focusField');																		 
	});
	$('.idleField textarea').blur(function(){
		$(this).parent().removeClass('focusField');																		 
	});
	
	// Add/Remove default/focus styling to select (need this for focus to work in IE6/7)
	$('.idleField select').focus(function(){
		$(this).parent().addClass('focusField');																		 
	});
	$('.idleField select').blur(function(){
		$(this).parent().removeClass('focusField');																		 
	});
	
	// Confirm password
	$('#password_confirm').blur(function(){
		$('#error_password_confirm').hide();
		$('#password_confirm_status').removeClass('invalid');
		if($(this).val() == ''){
			$('#error_password_confirm_blank').show();
			$('#password_confirm_status').addClass('invalid');
		} else {
			$('#error_password_confirm_blank').hide();
			if($(this).val() == $('#password').val()){
				$('#error_password_confirm').hide();
				$('#password_confirm_status').removeClass('invalid');
				$('#password_confirm_status').addClass('valid');
			} else {
				$('#error_password_confirm').show();
				$('#password_confirm_status').addClass('invalid');
			}
		}
	});
	
	// Signup form validation
	$('#signup_form').submit(function(){
		// Clears all error states
		$('input#id_password2').val($('input#password').val());
		$('.status').removeClass('invalid valid');
		$('.error').hide();
		var invalid = 0;
		invalid = validateLength('first_name', 0);
		invalid = validateLength('last_name', 0);
		invalid = validateLength('postcode', 0);
		invalid = validateLength('password', 0);
		invalid = validateLength('username', 0);
		invalid = validateEmail('email');
		
		if(!$('#accept_terms:checked').length){
			$('#error_accept_terms').show();
			invalid = 1;
		} else {
			$('#error_accept_terms').hide();
		}
		
		if(invalid == 0){
			$.post('actions/check.php', { field: 'username', value: $('#username').val() }, function(data){
				if(data == 'exists'){
					$('#error_username_exists').show();
					$('#username_status').addClass('invalid');
					invalid = 1;
				} else {
					$('#error_username_exists').hide();
					$('#username_status').removeClass('invalid');
					$('#username_status').addClass('valid');
				}
			});
			$.post('actions/check.php', { field: 'email', value: $('#email').val() }, function(data){
				if(data == 'exists'){
					$('#error_email_exists').show();
					$('#email_status').addClass('invalid');
					invalid = 1;
				} else {
					$('#error_email_exists').hide();
					$('#email_status').removeClass('invalid');
					$('#email_status').addClass('valid');
				}
			});
		}
		if(invalid == 1){
			return false;
		}
	});
	



	// Login form validation
	$('#login_form').submit(function(){
		// Clears all error states
		$('.status:visible').removeClass('invalid valid');
		$('.error:visible').hide();
		invalid1 = validateLength('login_username', 0);
		invalid2 = validateLength('login_password', 0);
		if(invalid1 == 1 || invalid2 == 1){
			return false;
		}
	});

	// On blur events
	$('#first_name').blur(function(){
		invalid = validateLength('first_name', 0);												
	});
	$('#last_name').blur(function(){
		invalid = validateLength('last_name', 0);												
	});
	$('#postcode').blur(function(){
		invalid = validateLength('postcode', 0);												
	});
	$('#email').blur(function(){
		$('#error_email_exists').hide();		
		$('#error_email_valid').hide();
		$('#error_email').hide();
		if(validateLength('email', 0)){
			invalid = validateLength('email',0);
		} else {
			if(!echeck($('#email').val())){
				$('#error_email_valid').show();
				$('#email_status').addClass('invalid');
				return 1;
			} else {
				$('#error_email_valid').hide();
				$('#email_status').removeClass('invalid');
				$('#email_status').addClass('valid');
				$.post('actions/check.php', { field: 'email', value: $('#email').val() }, function(data){
				if(data == 'exists'){
					$('#error_email_exists').show();
					$('#email_status').addClass('invalid');
					invalid = 1;
				} else {
					$('#error_email_exists').hide();
					$('#email_status').removeClass('invalid');
					$('#email_status').addClass('valid');
				}
			});
			}
		}				
	});
	$('#username').keyup(function(){
		if($(this).val().length > 12){
			$(this).val($(this).val().substr(0,12));
		}
	});
	$('#password').blur(function(){
		invalid = validateLength('password', 0);			
	});
	$('#username').blur(function(){
		validateLength('username', 0);	
		$('#error_username_exists').hide();
		$('#error_username').hide();
		if(!validateLength('username', 0)){
			$.post('actions/check.php', { field: 'username', value: $('#username').val() }, function(data){
				if(data == 'exists'){
					$('#error_username_exists').show();
					$('#username_status').addClass('invalid');
					invalid = 1;
				} else {
					$('#error_username_exists').hide();
					$('#username_status').removeClass('invalid');
					$('#username_status').addClass('valid');
				}
			});
		}
	});
	$('#login_password').blur(function(){
		invalid = validateLength('login_password', 0);												
	});
	$('#login_username').blur(function(){
		invalid = validateLength('login_username', 0);												
	});
	
});
	
// ValidateLength function vars (id = id of input, length = length of the validation characters
function validateLength(id, length){
	if($('#'+id).val().length <= length){
		$('#error_'+id).show();
		$('#'+id+'_status').addClass('invalid');	
		return 1;
	} else {
		$('#error_'+id).hide();
		$('#'+id+'_status').removeClass('invalid');
		$('#'+id+'_status').addClass('valid');
	}
}

// Validate email address
function validateEmail(id){
	if(!echeck($('#'+id).val())){
		$('#error_'+id+'_valid').show();
		$('#'+id+'_status').addClass('invalid');
		return 1;
	} else {
		$('#error_'+id+'_valid').hide();
		$('#'+id+'_status').removeClass('invalid');
		$('#'+id+'_status').addClass('valid');
	}
}

function validateCheckForDigit(id, length){
	var str = $('#'+id).val();
	strRegex = /\d/;
	if(str.match(strRegex) && str.length >= length) {
		$('#error_'+id).hide();
		$('#'+id+'_status').removeClass('invalid');
		$('#'+id+'_status').addClass('valid');  
	} else {
		$('#error_'+id).show();
		$('#'+id+'_status').removeClass('valid');
		$('#'+id+'_status').addClass('invalid');
		return 1;
	}
}


/*
*
*
* 	Hivetrader Signup/Login form validation
*
*
*/

/* Check the email field for correct format */
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 ValidateForm(){
	var emailID=document.frmSample.txtEmail
	
	if ((emailID.value==null)||(emailID.value=="")){
		alert("Please Enter your Email ID")
		emailID.focus()
		return false
	}
	if (echeck(emailID.value)==false){
		emailID.value=""
		emailID.focus()
		return false
	}
	return true
 }
$(function(){
					 
	// Add/Remove default/focus styling to inputs (need this for focus to work in IE6/7)
	$('.idleField input').focus(function(){
		$(this).parent().addClass('focusField');																		 
	});
	$('.idleField input').blur(function(){
		$(this).parent().removeClass('focusField');																		 
	});
	
	// Add/Remove default/focus styling to textarea (need this for focus to work in IE6/7)
	$('.idleField textarea').focus(function(){
		$(this).parent().addClass('focusField');																		 
	});
	$('.idleField textarea').blur(function(){
		$(this).parent().removeClass('focusField');																		 
	});
	
	// Add/Remove default/focus styling to select (need this for focus to work in IE6/7)
	$('.idleField select').focus(function(){
		$(this).parent().addClass('focusField');																		 
	});
	$('.idleField select').blur(function(){
		$(this).parent().removeClass('focusField');																		 
	});
	
	// Confirm password
	$('#password_confirm').blur(function(){
		$('#error_password_confirm').hide();
		$('#password_confirm_status').removeClass('invalid');
		if($(this).val() == ''){
			$('#error_password_confirm_blank').show();
			$('#password_confirm_status').addClass('invalid');
		} else {
			$('#error_password_confirm_blank').hide();
			if($(this).val() == $('#password').val()){
				$('#error_password_confirm').hide();
				$('#password_confirm_status').removeClass('invalid');
				$('#password_confirm_status').addClass('valid');
			} else {
				$('#error_password_confirm').show();
				$('#password_confirm_status').addClass('invalid');
			}
		}
	});
	
	// Signup form validation
	$('#signup_form').submit(function(){
		// Clears all error states
		$('input#id_password2').val($('input#password').val());
		$('.status').removeClass('invalid valid');
		$('.error').hide();
		var invalid = 0;
		invalid = validateLength('first_name', 0);
		invalid = validateLength('last_name', 0);
		invalid = validateLength('postcode', 0);
		invalid = validateLength('password', 0);
		invalid = validateLength('username', 0);
		invalid = validateEmail('email');
		
		if(!$('#accept_terms:checked').length){
			$('#error_accept_terms').show();
			invalid = 1;
		} else {
			$('#error_accept_terms').hide();
		}
		
		if(invalid == 0){
			$.post('actions/check.php', { field: 'username', value: $('#username').val() }, function(data){
				if(data == 'exists'){
					$('#error_username_exists').show();
					$('#username_status').addClass('invalid');
					invalid = 1;
				} else {
					$('#error_username_exists').hide();
					$('#username_status').removeClass('invalid');
					$('#username_status').addClass('valid');
				}
			});
			$.post('actions/check.php', { field: 'email', value: $('#email').val() }, function(data){
				if(data == 'exists'){
					$('#error_email_exists').show();
					$('#email_status').addClass('invalid');
					invalid = 1;
				} else {
					$('#error_email_exists').hide();
					$('#email_status').removeClass('invalid');
					$('#email_status').addClass('valid');
				}
			});
		}
		if(invalid == 1){
			return false;
		}
	});
	



	// Login form validation
	$('#login_form').submit(function(){
		// Clears all error states
		$('.status:visible').removeClass('invalid valid');
		$('.error:visible').hide();
		invalid1 = validateLength('login_username', 0);
		invalid2 = validateLength('login_password', 0);
		if(invalid1 == 1 || invalid2 == 1){
			return false;
		}
	});

	// On blur events
	$('#first_name').blur(function(){
		invalid = validateLength('first_name', 0);												
	});
	$('#last_name').blur(function(){
		invalid = validateLength('last_name', 0);												
	});
	$('#postcode').blur(function(){
		invalid = validateLength('postcode', 0);												
	});
	$('#email').blur(function(){
		$('#error_email_exists').hide();		
		$('#error_email_valid').hide();
		$('#error_email').hide();
		if(validateLength('email', 0)){
			invalid = validateLength('email',0);
		} else {
			if(!echeck($('#email').val())){
				$('#error_email_valid').show();
				$('#email_status').addClass('invalid');
				return 1;
			} else {
				$('#error_email_valid').hide();
				$('#email_status').removeClass('invalid');
				$('#email_status').addClass('valid');
				$.post('actions/check.php', { field: 'email', value: $('#email').val() }, function(data){
				if(data == 'exists'){
					$('#error_email_exists').show();
					$('#email_status').addClass('invalid');
					invalid = 1;
				} else {
					$('#error_email_exists').hide();
					$('#email_status').removeClass('invalid');
					$('#email_status').addClass('valid');
				}
			});
			}
		}				
	});
	$('#username').keyup(function(){
		if($(this).val().length > 12){
			$(this).val($(this).val().substr(0,12));
		}
	});
	$('#password').blur(function(){
		invalid = validateLength('password', 0);			
	});
	$('#username').blur(function(){
		validateLength('username', 0);	
		$('#error_username_exists').hide();
		$('#error_username').hide();
		if(!validateLength('username', 0)){
			$.post('actions/check.php', { field: 'username', value: $('#username').val() }, function(data){
				if(data == 'exists'){
					$('#error_username_exists').show();
					$('#username_status').addClass('invalid');
					invalid = 1;
				} else {
					$('#error_username_exists').hide();
					$('#username_status').removeClass('invalid');
					$('#username_status').addClass('valid');
				}
			});
		}
	});
	$('#login_password').blur(function(){
		invalid = validateLength('login_password', 0);												
	});
	$('#login_username').blur(function(){
		invalid = validateLength('login_username', 0);												
	});
	
});
	
// ValidateLength function vars (id = id of input, length = length of the validation characters
function validateLength(id, length){
	if($('#'+id).val().length <= length){
		$('#error_'+id).show();
		$('#'+id+'_status').addClass('invalid');	
		return 1;
	} else {
		$('#error_'+id).hide();
		$('#'+id+'_status').removeClass('invalid');
		$('#'+id+'_status').addClass('valid');
	}
}

// Validate email address
function validateEmail(id){
	if(!echeck($('#'+id).val())){
		$('#error_'+id+'_valid').show();
		$('#'+id+'_status').addClass('invalid');
		return 1;
	} else {
		$('#error_'+id+'_valid').hide();
		$('#'+id+'_status').removeClass('invalid');
		$('#'+id+'_status').addClass('valid');
	}
}

function validateCheckForDigit(id, length){
	var str = $('#'+id).val();
	strRegex = /\d/;
	if(str.match(strRegex) && str.length >= length) {
		$('#error_'+id).hide();
		$('#'+id+'_status').removeClass('invalid');
		$('#'+id+'_status').addClass('valid');  
	} else {
		$('#error_'+id).show();
		$('#'+id+'_status').removeClass('valid');
		$('#'+id+'_status').addClass('invalid');
		return 1;
	}
}


