// JavaScript Document
$(document).ready(function(){
	//global vars

	var userName = $("#txtUserName");
	
	var email = $("#txtEmail");
	
	var pass1 = $("#txtPassword");
	
	var pass2 = $("#txtConfirmPassword");
	
	

    var chkTerms=$("#chkTerms");
	
	
	
	//var city=$("#city");
	
	//var country=$("#country");
	userName.focusout(checkCharacters);
	//On blur
	
	userName.blur(validateName);
    $("#txtAge").blur(checkAgeLength);
	email.blur(validateEmail);
	pass1.blur(validatePass1);
	//pass1.blur(validatePasswordLength);
	pass2.blur(validatePass2);
    //chkTerms.click(termsAndConditions);
	
	userName.keyup(validateName);
$("#txtAge").keyup(checkAgeLength);
	email.keyup(validateEmail);
	pass1.keyup(validatePass1);
	//pass1.keyup(validatePasswordLength
	pass2.keyup(validatePass2);

	//On Submitting
	$("#btnSignUp").click(function(){
				var response='';		 
		if(validateName()&validateEmail()&validatePass1()&validatePass2()&termsAndConditions()&checkCharacters()&checkavailable()&checkAgeLength()&validateAge())
		{
		
		 createUser();
		 return true;
         
      }
  else
  {
	  return false;
  }
						 });
	
	$("#btnCancel").click(function(){
								  
								   location.href='../index.php';
	                               event.returnValue=false;
								   });
	
	$("#btnUpdateCancel").click(function(){
								  
								   location.href='../index.php';
	                               event.returnValue=false;
								   });
	$("#btnUpdateProfile").click(function(){
								  updateProfile();
								   });
	/////////////This method has the functionality to createUser using login//////////////
	function createUser()
	{		

		  $.ajax({
   type: "POST",
   url: "../BusinessLogic/userDetail.php",
   data: "emailToSave="+email.val()+"&loginName="+userName.val()+"&firstPassword="+pass1.val()+"&userAge="+$("#txtAge").val()+
       "&confirmPassword="+pass2.val()+"&terms="+getTermsAndConditions()+"&option=creatLogin&accountType="+$("#accountType").val(),
   async: false,
   success: function(msg){
	 
	   response=msg;
         
                         }
	  });
		  if(response=='1')
		 {
			 location.href='../index.php';
	         event.returnValue=false;
         }
          else if(response=='0')
         {
	         alert('User has not been registered due to some error.');
          }
			
		
	}
	//////////This method has the functionality to check user name available/////////////////
	function checkavailable()
{

    var response='';
	$.ajax({
		type: "POST",
		url: "../BusinessLogic/userDetail.php",
		data: "userName="+userName.val()+"&option=checkAvailable",
		async: false,
		success: function(msg){   
					response=msg;
                    
		}
	});
	if(response == '1'){
						$("#userError").hide();
					 return true;
                    }
					else if(response=='0')
					{
					
					$("#userError").show();		
	$("#userError").text("User name is not available.");
					 
					 event.returnValue=false;
			 return false;
					}
	
}
	//validation functions
	function validateEmail(){
		//testing regular expression
		var a = email.val();
		var filter = /^[a-zA-Z0-9]+[a-zA-Z0-9_.-]+[a-zA-Z0-9_-]+@[a-zA-Z0-9]+[a-zA-Z0-9.-]+[a-zA-Z0-9]+.[a-z]{2,4}$/;
		//if it's valid email
		if(filter.test(a)){
			
			$("#emailError").hide();
			$("#emailError").text("");
			return true;
		}
		//if it's NOT valid
		else{
			$("#emailError").show();
			$("#emailError").text("Email address is not in valid formate");		
			return false;
		}
	}
	function validateName(){
	
	
		//if it's NOT valid
		if(userName.val().length <= 0){
		
		$("#userError").show();		
	$("#userError").text("Please enter User Name");
		
			
			return false;
		}
		//if it's valid
		else{
			$("#userError").text("");
			$("#userError").hide();
			return true;
		}
	}
	
	function validatePass1(){
		

		//it's NOT valid
		if(pass1.val().length <= 0){
			$("#passwordError").show();
			$("#passwordError").text("Please enter password.");
			
			return false;
		}
		else if(pass1.val().length > 0&&pass1.val().length<5)
		{
			$("#passwordError").show();
			$("#passwordError").text("Password characters length cannot be less then 5.");
			
			return false;

		}
		//it's valid
		else{			
		$("#passwordError").text("");
		$("#passwordError").hide();
			
			validatePass2();
			return true;
		}
	}
	
	function validatePasswordLength(){
		

		//it's NOT valid
		if(pass1.val().length <= 4){
			$("#passwordError").show();
			$("#passwordError").text("Password characters cannot be less then 5 characters.");
			
			return false;
		}
		//it's valid
		else{			
		$("#passwordError").text("");
		$("#passwordError").hide();
			return true;
		}
	}
	
	function validatePass2(){
		
		
		//are NOT valid
		if( pass1.val() != pass2.val() ){
			$("#confirmPasswordError").show();
			$("#confirmPasswordError").text("Password does not match with confirm password.");
			return false;
		}
		//are valid
		else{
		    $("#confirmPasswordError").hide();
			$("#confirmPasswordError").text("");
			
			return true;
		}
	}
	
	function termsAndConditions(){
		
		
		//are NOT valid
		if( !chkTerms.is(':checked') ){
			//alert('dfdfd');
			$("#termsError").show();
			$("#termsError").text("Please agree with Term and Service.");
			return false;
		}
		//are valid
		else{
		
			//chkTerms.checked=true;
			$("#termsError").hide();
			$("#termsError").text("");
			return true;
		}
	}
	
	function getTermsAndConditions()
	{
		if( !chkTerms.is(':checked') ){
			return 0;
		}
		else
		{
			return 1;
		}
	}

function checkCharacters()
{
	//alert(name.val());
	var a = userName.val();
		var filter = /^[a-zA-Z0-9_]{1,}$/;
		//if it's valid email
		if(filter.test(a)){
			//alert(name.val());
			
			$("#userError").hide();		
	        $("#userError").text("");
			return true;
		}
		//if it's NOT valid
		else{
			//alert(name.val());
			$("#userError").show();		
	        $("#userError").text("Only integer and alphabetic characters are allowed.");
			event.returnValue=false;
			return false;
			//return false;
		}
	
}
function validateHomeNumber()
{
	
	var filter=/^[0-9]+$/;
	if(filter.test($("#txtHomeContact").val())){
		return true;
	}
	else
	{
		$("#phoneNumberError").show();
		$("#phoneNumberError").text("Only numeric digits are allowed for Home Phone Number");
		return false;
	}
}
function validateAge()
{
	
	var filter=/^[0-9]*.?[0-9]+$/;
	if(filter.test($("#txtAge").val())){
		return true;
	}
	else
	{
		$("#ageError").show();
		$("#ageError").text("Only numeric/decimal digits are allowed for Age");
		return false;
	}
}
function checkAgeLength()
{
	if($("#txtAge").val().length>0){
		$("#ageError").hide();
		$("#ageError").text("");
		return true;
	}
	else
	{
		$("#ageError").show();
		$("#ageError").text("Please enter age.");
		return false;
	}
}
///////////////////////////////////Update Profile///////////////////////////////////////////////
function updateProfile()
	{
		
		if(validateHomeNumber()&validateAge())
		{
		 $.ajax({
   type: "POST",
   url: "../BusinessLogic/userDetail.php",
   data: "firstName="+$("#txtFirstName").val()+"&lastName="+$("#txtLastName").val()+"&fatherName="+$("#txtFatherName").val()+"&cityName="+$("#txtAddress").val()+"&address="+$("#txtAddress").val()+"&contactNumber="+$("#txtHomeContact").val()+"&accountNumber="+$("#txtAccountNumber").val()+"&teacherName="+$("#txtTeacherName").val()+"&userAge="+$("#txtAge").val()+"&schoolName="+$("#txtSchoolName").val()+"&option=updateProfile",
   async: false,
   success: function(msg){
	   response=msg;
         
                         }
	  });
		  if(response=='1')
		 {
			 location.href='profile.php';
	         event.returnValue=false;
         }
          else if(response=='0')
         {
	         alert('Your profile has not been update due to some error.');
          }
		}
	}
////////////////////////////////////////////////////////////////////////////////////////////////

});
