// JavaScript Document/Form
$(document).ready(function(){				   
	/*----------------------------------------
		Variables
	-----------------------------------------*/
	//Form
	var registerForm  	= $("#registerForm");
	var sendBtn 		= $("#submitBtn");
	
	//Fields
	var firstName		= $("#doctorFirstName");
	var lastName		= $("#doctorLastName");
	var businessName	= $("#businessName");
	var address			= $("#address");
	var city			= $("#city");
	var zipcode			= $("#zipcode");
	var areacode		= $("#areacode");
	var phoneFirst		= $("#phoneFirst");
	var phoneSecond		= $("#phoneSecond");

	
	var validate		= Array(false,false,false,false,false,false);
	
	//Errors
	var nameError		= $("#nameError");
	var bNameError		= $("#businessNameError");
	var bAddError		= $("#businessAddressError");
	var cityError		= $("#cityError");
	var zipError		= $("#zipcodeError");
	var phoneError		= $("#phoneError");
	
	//ErrorMessage
	var nameMsg			= "Please Enter A Valid Name";
	var bNameMsg		= "Please Enter A Valid Business Name";
	var bAddMsg			= "Please Enter A Valid Address";
	var cityMsg			= "Please Enter A Valid City";
	var zipcodeMsg		= "Please Enter A Valid Zipcode";
	//var emailMsg		= "Please Enter A Valid Email";
	var phoneMsg		= "Please Enter A Valid Phone Number";
	
	var addMessage		= " Has Been Added";
	
	
	
	

	
	
	/*----------------------------------------
		Input Field Action
	-----------------------------------------*/
	//Validating
	function validateString(target, type){
		var val = target.val();
		var reg;
		
		switch(type){
			case "stringNumber":
				reg = /^([\w-\.])/;
			break;
			
			case "string":
				reg = /^([a-zA-Z])/;
			break;
			
			case "number":
				reg = /^([0-9])/;
			break;
			
			case "email":
				reg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
			break;
			
			default:
				reg = "";
			break;
		}
		
		
		if(val == "" || !reg.test(val)){
			return false;
		}else{
			return true;
		}
	}
	
	//Validating Name Field
	function validateName(arrayIndex, first, last){
		if(!validateString(first,"string") || !validateString(last,"string")){
			nameError.html(nameMsg);
			validate[arrayIndex] = false;
		}else{
			nameError.html("");
			validate[arrayIndex] = true;
		}
	}
	
	//Validating Business Name
	function validateBusinessName(arrayIndex, target){
		if(!validateString(target,"stringNumber")){
			bNameError.html(bNameMsg);
			validate[arrayIndex] = false;
		}else{
			bNameError.html("");
			validate[arrayIndex] = true;
		}
	}
	
	
	//Validating Address
	function validateAddress(arrayIndex, target){
		if(!validateString(target,"stringNumber")){
			bAddError.html(bAddMsg);
			validate[arrayIndex] = false;
		}else{
			bAddError.html("");
			validate[arrayIndex] = true;
		}
	}
	
	//Validating City
	function validateCity(arrayIndex, target){
		if(!validateString(target,"string")){
			cityError.html(cityMsg);
			validate[arrayIndex] = false;
		}else{
			cityError.html("");
			validate[arrayIndex] = true;
		}
	}
	
	//Validating Zipcode
	function validateZipcode(arrayIndex, target){
		if(!validateString(target,"number")){
			zipError.html(zipcodeMsg);
			validate[arrayIndex] = false;
		}else{
			zipError.html("");
			validate[arrayIndex] = true;
		}
	}
	
	
	
	//Validating Phone
	function validatePhone(arrayIndex, area, first, second){
		var areaVal = area.val();
		var firstVal = first.val();
		var secondVal = second.val();
		var length = areaVal.length + firstVal.length + secondVal.length;
		
		if(!validateString(area,"number") || !validateString(first,"number") || !validateString(second,"number") || length < 10){
			phoneError.html(phoneMsg);
			validate[arrayIndex] = false;
		}else{
			phoneError.html("");
			validate[arrayIndex] = true;
		}
	}
	
	
	/*----------------------------------------
		Input Field Action
	-----------------------------------------*/
	//First Name
	firstName.keyup(function(){
		//validateName(0, firstName, lastName);
	});
	firstName.blur(function(){
		//validateName(0, firstName, lastName);
	});
	
	//Last Name
	lastName.keyup(function(){
		//validateName(0, firstName, lastName);
	});
	lastName.blur(function(){
		//validateName(0, firstName, lastName);
	});
	
	//Business Name
	businessName.keyup(function(){
		validateBusinessName(1, businessName);
	});
	businessName.blur(function(){
		validateBusinessName(1, businessName);
	});
	
	
	//Business Address
	address.keyup(function(){
		validateAddress(2, address);
	});
	address.blur(function(){
		validateAddress(2, address);
	});
	
	
	//City
	city.keyup(function(){
		validateCity(3, city);
	});
	city.blur(function(){
		validateCity(3, city);
	});
	
	//Zip
	zipcode.keyup(function(){
		validateZipcode(4, zipcode);
	});
	zipcode.blur(function(){
		validateZipcode(4, zipcode);
	});
	
	
	//Phone
	areacode.keyup(function(){
		validatePhone(5, areacode, phoneFirst, phoneSecond);
	});
	areacode.blur(function(){
		validatePhone(5, areacode, phoneFirst, phoneSecond);
	});
	phoneFirst.keyup(function(){
		validatePhone(5, areacode, phoneFirst, phoneSecond);
	});
	phoneFirst.blur(function(){
		validatePhone(5, areacode, phoneFirst, phoneSecond);
	});
	phoneSecond.keyup(function(){
		validatePhone(5, areacode, phoneFirst, phoneSecond);
	});
	phoneSecond.blur(function(){
		validatePhone(5, areacode, phoneFirst, phoneSecond);
	});
	
	
	
	/*----------------------------------------
		Send Button
	----------------------------------------*/
	var sending = true;
	sendBtn.click(function(){
		
		
		validate[0] = true;
		validateBusinessName(1, businessName);
		validateAddress(2, address);
		validateCity(3, city);
		validateZipcode(4, zipcode);
		validatePhone(5, areacode, phoneFirst, phoneSecond);
		for(var i = 0; i < validate.length; i++){
			if(validate[i] == false){
				sending = false;
			}
		}
		
		
		if(sending == true){		
			var geocoder = new GClientGeocoder();
			var sendAdd = address.val() + " " + city.val() + ", " + zipcode.val();
			geocoder.getLatLng(sendAdd, setLatLng);
		}
		
		
	});
	
	
	function setLatLng(points){
		if(!points){
			return false;
		}else{
			var fnVal			= $("#doctorFirstName").val();
			var lnVal			= $("#doctorLastName").val();
			var bnVal			= $("#businessName").val();
			var aVal			= $("#address").val();
			var cVal			= $("#city").val();
			var sVal			= $("#states").val();
			var zVal			= $("#zipcode").val();
			var arVal			= $("#areacode").val();
			var pfVal			= $("#phoneFirst").val();
			var psVal			= $("#phoneSecond").val();
			
			
			
			$.post("resources/php/register-doctor.php", {submitBtn: true, dFirstName: fnVal, dLastName: lnVal, bName:bnVal, bAddress:aVal, city: cVal, state: sVal, zipcode: zVal, areacode: arVal, phoneFirst: pfVal, phoneSecond: psVal, lat: points.lat(), lng: points.lng()}, function(data){sendInfo(data);})
		
		}
		
	}
	
	
	function sendInfo(data){
		$("#addedMsg").html($("#businessName").val() +addMessage);
		
		$("#doctorFirstName").val("");
		$("#doctorLastName").val("");
		$("#businessName").val("");
		$("#address").val("");
		$("#city").val("");
		$("#states").val("");
		$("#zipcode").val("");
		$("#areacode").val("");
		$("#phoneFirst").val("");
		$("#phoneSecond").val("");
	}
	
	
});



/*	;*/
