var valid_username = false;
var valid_buss_user = false;
var valid_bmr_user = false;
var valid_buss_enc_user = false;
var captchaError = false;
var usernameBAA = "";
var companyName = "";
var contactPerson = "";
var emailID = "";
var phone = "";
var plan = "";
var mailingAddr1 = "";
var mailingAddr2 = "";
var isEntUser = false;

$('#User_Name').on('blur', function() {
	$('.baa_succ_msg').hide();
	$.validateUsername();
	validateUserExists();
	//validateUserExistsResponse();
});

$('#Email_address').on('blur', function() {
	$.validateEmail();
});

$('#Phone_Number').on('blur', function() {
	$.validatePhoneNum();
});

$('#Company_Name').on('blur', function() {
	$.validateCompanyName();
});

$('#Contact_Person_Name').on('blur', function() {
	//$.validateContactPerson();
	$.validateContactPersonName();
});

$('#Mailing_Address1').on('blur', function() {
	if ($.trim($('#Mailing_Address1').val()) == "") {
		$("#addr_span1").text("Enter the valid address");
		return false;
	} else {
		$("#addr_span1").text("");
	}
});


$('#city').on('blur', function() {
	if ($.trim($('#city').val()) == "") {
		$("#city_span1").text("Enter the city");
		return false;
	} else {
		$("#city_span1").text("");
	}
});

$('#state').on('blur', function() {
	if ($.trim($('#state').val()) == "") {
		$("#state_span2").text("Enter the state");
		return false;
	} else {
		$("#state_span2").text("");
	}
});

$('#country').on('blur', function() {
	if ($.trim($('#country').val()) == "") {
		$("#country_span2").text("Enter the country");
		return false;
	} else {
		$("#country_span2").text("");
	}
});

$('#zipCode').on('blur', function() {
	if ($.trim($('#zipCode').val()) == "") {
		$("#zip_span2").text("Enter the zipcode");
		return false;
	} else {
		$("#zip_span2").text("");
	}
});

$('#plan').on('change', function() {
	if ($.trim($('#plan').val()) == "") {
		$("#plan_error_span").text("Please select the plan");
		$("#plan_error_span").show();
	} else {
		$("#plan_error_span").text("");
		$("#plan_error_span").hide();
	}
	return false;
});

$(document).on('keypress', function(e) {
	if (e.keyCode == 13) {
		$('.baa_succ_msg').hide();
		//$('.form__success').hide();
		$('.form__error').hide();
		$('input[name="sendRequest"],[name="BMR"]').trigger('click');
	}
});

$('[name="sendRequest"]').on('click', function(e) {
	$('.baa_succ_msg').hide();
	//$('.form__success').hide();
	$('.form__error').hide();
	$('.baa_error_message').hide();
	$("#plan_error_span").hide();
	captcha_response = $("#g-recaptcha-response").val();
	if (!$.validateUsername()) {
		$("html, body").animate({ scrollTop: $('.baa_form_box').offset().top - 50 }, "slow");
		$('input[name="User_Name"]').focus().select();
		return false;
	} else if (!$.validateCompanyName()) {
		$("html, body").animate({ scrollTop: $('.baa_form_box').offset().top - 50 }, "slow");
		$('#Company_Name').focus().select();
		return false;
	} else if (!$.validateContactPersonName()) {
		$("html, body").animate({ scrollTop: $('.baa_form_box').offset().top - 50 }, "slow");
		$('#Contact_Person_Name').focus().select();
		return false;
	} else if (!$.validatePhoneNum()) {
		$("html, body").animate({ scrollTop: $('.baa_form_box').offset().top - 50 }, "slow");
		$('#Phone_Number').focus().select();
		return false;
	} else if (!$.validateEmail()) {
		$("html, body").animate({ scrollTop: $('.baa_form_box').offset().top - 50 }, "slow");
		$('#Email_address').focus().select();
		return false;
	} else if (!$.validateAddress()) {
		$('#Mailing_Address1').focus().select();
		return false;
	}/*else if($.trim($('#Mailing_Address1').val()) == ""){
		$("#addr_span1").text("Enter the valid address");
		$('#Mailing_Address1').focus().select();
		return false;
	}*/else if ($.trim($('#city').val()) == "") {
		$("#city_span1").text("Enter the city");
		$('#city').focus().select();
		return false;
	}
	else if ($.trim($('#state').val()) == "") {
		$("#state_span2").text("Enter the state");
		$('#state').focus().select();
		return false;
	}
	else if ($.trim($('#country').val()) == "") {
		$("#country_span2").text("Enter the country");
		$('#country').focus().select();
		return false;
	}
	else if ($.trim($('#zipCode').val()) == "") {
		$("#zip_span2").text("Enter the zipcode");
		$('#zipCode').focus().select();
		return false;
	} else if (!$.validateEmail()) {
		$('input[name="Email_address"]').focus().select();
		return false;
	} else if ($("#plan").val() == "") {
		$("#plan_error_span").text("Please select the plan");
		$("#plan_error_span").show();
		$("html, body").animate({ scrollTop: $('.baa_form_box').offset().top - 50 }, "slow");
		return false;
	} else if (!valid_username) {
		$("html, body").animate({ scrollTop: $('.baa_form_box').offset().top - 50 }, "slow");
		$('.baa_error_message').html('<p>Enter a valid IDrive Business/Team/Enterprise/Bulk Resellers account Username/Email address.</p>').show();
		return false;
	} else if (!valid_buss_user) {
		$("html, body").animate({ scrollTop: $('.baa_form_box').offset().top - 50 }, "slow");
		$('.baa_error_message').html('<p>You are not an IDrive Business/Team/Enterprise/Bulk Resellers plan subscriber. To request for the agreement, please <a href="https://www.idrive.com/idrive/home/account#toplink_upgrade" target="_blank"> upgrade your account</a> and try again.</p>').show();
		return false;
	} else if (!valid_buss_enc_user) {
		$("html, body").animate({ scrollTop: $('.baa_form_box').offset().top - 50 }, "slow");
		$('.baa_error_message').html('<p>Only IDrive Business/Team/Enterprise/Bulk Resellers accounts with Private Key encryption are eligible for the agreement. Please <a href="https://www.idrive.com/online-backup-web-faq#reset1" target="_blank">modify your account encryption settings</a> and try again.</p>').show();
		return false;
	} else if (!validateReCaptcha(captcha_response)) {
		$("#captcha_err").text("Please verify the captcha").show();
		$('#captcha_err').fadeOut(6000);
		return false;
	} else {
		$('.btn__wrapper').addClass('loader');
		$(".cta__btn").hide();
		$("#success-submit").show();
		usernameBAA = $.trim($("#User_Name").val());
		companyName = $.trim($("#Company_Name").val());
		contactPerson = $.trim($("#Contact_Person_Name").val());
		emailID = $.trim($("#Email_address").val());
		mailingAddr1 = $.trim($("#Mailing_Address1").val());
		mailingAddr2 = $.trim($("#Mailing_Address2").val());
		city = $.trim($("#city").val());
		state = $.trim($("#state").val());
		country = $.trim($("#country").val());
		zipCode = $.trim($("#zipCode").val());
		phone = $.trim($("#Phone_Number").val());
		plan = $.trim($("#plan").val());
		var thisForm = document.frm_support;
		//thisForm.action = "https://www.idrive.com/idrive/static/submitRequestBAA";
		$(".baa_submit_btn").prop('disabled', true);
		$('.baa_submit_btn').addClass('id-disable-btn')
		$('#showLoader').show()
		jQuery.fn.makeRequest('POST', '/idrive/static/submitRequestBAA', { usernameBAA: usernameBAA, companyName: companyName, contactPerson: contactPerson, phone: phone, emailID: emailID, mailingAddr1: mailingAddr1, mailingAddr2: mailingAddr2, city: city, state: state, country: country, zipCode: zipCode, recapctcha: $("#g-recaptcha-response").val(), compliance: $('#bmrcompliance').val(),plan : plan }, $.getResponseBAA);
	}
});

$.getResponseBAA = function(data) {
	$('#showLoader').hide();
	$(".baa_submit_btn").prop('disabled', false);
	$('.baa_submit_btn').removeClass('id-disable-btn');
	$('.btn__wrapper').removeClass('loader');
	$("#success-submit").hide();
	try {
		grecaptcha.reset();
	} catch (e) {
	}
	$(".cta__btn").show();
	if (data == "SUCCESS") {
		//$('html, body').animate({ scrollTop: $(".baa_error_message").offset().top - 500 }, 1000);
		$("html, body").animate({ scrollTop: $('.baa_form_box').offset().top - 50 }, "slow");
		$('.baa_error_message').val('');
		$('.baa_succ_msg').show();
		$('.form__success').show();
		$('.baa_succ_msg span').text('We have received your request for the business associate agreement. Our support personnel will contact you shortly.').show();
		$('.form__success .info').text('We have received your request for the business associate agreement. Our support personnel will contact you shortly.').show();
		$('#User_Name').val('');
		$('#Email_address').val('');
		$('#Phone_Number').val('');
		$('#Company_Name').val('');
		$('#Contact_Person_Name').val('');
		$('#Mailing_Address1').val('');
		$('#Mailing_Address2').val('');
		$("#textverify").val('');
		$("#city").val('');
		$("#state").val('');
		$("#country").val('');
		$("#zipCode").val('');
		$("#plan").val('');
	}
	else if (data == "The text entered does not match the image") {
		$("#captcha_err").text("Please verify the captcha").show();
		$('#captcha_err').fadeOut(6000);
		captchaError = true;
	} else if (data == "Enter a valid username") {
		$('.baa_error_message').html('Enter a valid IDrive Business/Team/Enterprise/Bulk Resellers/Cloud Applications Backup account Username/Email address.').show();
		$("html, body").animate({ scrollTop: $('.baa_form_box').offset().top - 50 }, "slow");
		$('input[name="User_Name"]').focus().select();
		return false;
	} else if (data == "Enter the company name") {
		$('#company_name_span').text('Enter the Company Name').show();
		return false;
	} else if (data == "Enter the contact person's name") {
		$('#contact_person_name_span').text("Enter the Contact Person's Name").show();
		return false;
	} else if (data == "Enter the emailID") {
		$('#email_address_span').text('Enter your email address');
		return false;
	} else if (data == "exists BusinessDefault" || data == "exists EnterpriseDefault" || data == "exists BulkDefault" || data == "exists SubAccountDefault" || data == "exists SubAccountNotSet") {
		$('.baa_error_message').html('<p>Only IDrive Business/Team/Enterprise/Bulk Resellers accounts with Private Key encryption are eligible for the agreement. Please <a href="https://www.idrive.com/online-backup-web-faq#reset1" target="_blank">modify your account encryption settings</a> and try again.</p>');
		$('.baa_error_message').show();
		try {
			$("html, body").animate({ scrollTop: $('.baa_form_box').offset().top - 50 }, "slow");
		} catch (e) {
		}
		return false;
	} else if (data == "exists") {
		$('.baa_error_message').html('<p>You are not an IDrive Business/Team/Enterprise/Bulk Resellers/Cloud Application Backup plan subscriber. To request for the agreement, please <a href="https://www.idrive.com/idrive/home/account#toplink_upgrade" target="_blank"> upgrade your account</a> and try again.</p>').show();
		$("html, body").animate({ scrollTop: $('.baa_form_box').offset().top - 50 }, "slow");
		return false;
	} else if (data == 'unavailable') {
		$('.baa_error_message').html('Enter a valid IDrive Business/Team/Enterprise/Bulk Resellers/Cloud Applications Backup account Username/Email address.').show();
		$("html, body").animate({ scrollTop: $('.baa_form_box').offset().top - 50 }, "slow");
		$('input[name="User_Name"]').focus().select();
		return false;
	}

};

validateUserExists = function() {
	if (!($.validateUsername())) {
		return (false);
	}
	valid_username = true;
	valid_bmr_user = true;
	valid_buss_user = true;
	valid_buss_enc_user = true;
	//jQuery.fn.makeRequest('POST', '/idrive/viewjsp/idBussinessEncVerify.jsp',{user_id:$("#User_Name").val().trim()}, validateUserExistsResponse);
};

$.validateUsername = function() {
	//alert("validateUsername");
	var val_user = $('input[name="User_Name"]').val();
	var valLength = val_user.length;

	if (isBlank(val_user)) {
		$('#user_name_span').text('Username cannot be blank').show();
		/*		$('#user_name_span').text('Enter a valid IDrive Business/Enterprise/Bulk Resellers account Username/Email address.').show();*/
		return (false);
	} else {
		$('#user_name_span').text('').hide();
		return (true);
	}

};

$.validateCompanyName = function() {
	var val_comp_name = $('input[name="Company_Name"]').val();
	var valLength = val_comp_name.length;
	if (isBlank(val_comp_name)) {
		$('#company_name_span').text('Enter the Company Name').show();
		return (false);
	} else {
		$('#company_name_span').text('');
		return (true);
	}
};

$.validateContactPerson = function() {
	var val_contactPerson = $('#Contact_Person_Name').val();
	var valLength = val_contactPerson.length;
	if (isBlank(val_contactPerson)) {
		$('#contact_person_name_span').text("Enter the Contact Person's Name").show();
		return (false);
	} else {
		$('#contact_person_name_span').text('');
		return (true);
	}
};

$.validateContactPersonName = function() {
	var val_contactPersonName = $('#Contact_Person_Name').val();
	var valLength = val_contactPersonName.length;
	var alpha = invalidName(val_contactPersonName); //Last name can contain only characters A-Z, a-z,hyphen and blank space

	//Last Name Validation
	if (isBlank(val_contactPersonName)) {
		$('#contact_person_name_span').text("Enter the Contact Person's Name").show();
		return (false);
	} else if (alpha) {
		$('#contact_person_name_span').text('Can contain A-Z, a-z, - and blank space').show();
		return (false);
	} else {
		$('#contact_person_name_span').text('').hide();
		return (true);
	}
}
function invalidName(Str) {
	var alloweduser = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz- ";

	for (var count = 0; count < Str.length; count++) {
		if (alloweduser.indexOf(Str.substring(count, count + 1)) == -1) {
			return (true);
		}
	};
}

$.validateAddress = function() {
	var val = $('#Mailing_Address1').val();
	var alphanum = inValidAddress(val);
	val = $.trim(val);

	if (isBlank(val)) {
		$("#addr_span1").text("Enter the valid address");
		return (false);
	} else if (alphanum) {
		$("#addr_span1").text("Address cannot contain single quotes, double quotes or backward slash");
		return (false);
	} else {
		$('#addr_span1').text('');
		return (true);
	}
}

function inValidAddress(Str) {
	if ((Str.indexOf('"') != -1) || (Str.indexOf('\'') != -1) || (Str.indexOf('\\') != -1)) {
		return (true);
	}
	else {
		return (false);
	}
}

$.validateEmail = function() {
	var val = $('input[name="Email_address"]').val();
	var atpos = val.indexOf("@");
	var dotpos = val.lastIndexOf(".");
	val = trim(val);
	var email_chk = isValidEmailId(val);  ///Password can only contain characters A-Z, a-z and 0-9

	if (isBlank(val)) {
		$('#email_address_span').text('Enter your email address');
		return (false);
	}
	else if (val.substring(0, 1) == "-") {
		$('#email_address_span').text('Doesn\'t look like a valid email').show();
		return (false);
	}
	else if (atpos < 1 || dotpos < atpos + 2 || dotpos + 2 >= val.length) {
		$('#email_address_span').text('Doesn\'t look like a valid email').show();
		return (false);
	} else if (val.indexOf("..") != -1) {
		$('#email_address_span').text('Doesn\'t look like a valid email').show();
		return (false);
	} else if (!email_chk) {
		$('#email_address_span').text('Doesn\'t look like a valid email').show();
		return (false);
	} else {
		$('#email_address_span').text('');
		return (true);
	}
};

function isValidEmailId(email) {
	if (email == null) {
		return (false);
	}
	else if (email == '') {
		return (false);
	}
	else if ((trim(email).indexOf('@') == -1) ||
		(trim(email).indexOf('@') == 0) ||
		(trim(email).indexOf('@') == (trim(email).length - 1) || trim(email).indexOf('@', (trim(email).indexOf('@') + 1)) != -1)) {
		return (false);
	}
	else if (hasSpecChar(email)) {
		return (false);
	}
	else {
		return (true);
	};
}

function trim(Str) {
	if (!(isBlank(Str))) {
		while ('' + Str.charAt(0) == ' ')
			Str = Str.substring(1, Str.length);
		while ('' + Str.charAt(Str.length - 1) == ' ')
			Str = Str.substring(0, Str.length - 1);
		return (Str);
	}
	else {
		return ('');
	};
}

function hasSpecChar(Str) {
	var alloweduser = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_@.-+";

	for (var count = 0; count < Str.length; count++) {
		if (alloweduser.indexOf(Str.substring(count, count + 1)) == -1) {
			return (true);
		}

	};
	return (false);
}

function isBlank(Str) {
	while ('' + Str.charAt(0) == ' ')
		Str = Str.substring(1, Str.length);
	while ('' + Str.charAt(Str.length - 1) == ' ')
		Str = Str.substring(0, Str.length - 1);
	if (Str == '') {
		return (true);
	}
	else {
		return (false);
	};
}
//Phonenumber
$.validatePhoneNum = function() {
	//	alert("validaePw");
	var val_phone = $('input[name="Phone_Number"]').val();
	if (isBlank(val_phone)) {
		$('#phone_number_span').text('Enter your Phone Number');
		return (false);
	}


	else if ((val_phone != '') && (invalidSecurityPhNum(val_phone))) {
		$('#phone_number_span').text('Phone number can only contain characters 0-9 x X - + ()').show();
		return (false);
	} else {
		$('#phone_number_span').text('');
		return (true);
	}
};

function invalidSecurityPhNum(Str) {
	var alloweduser = "0123456789- xX+()";
	var totcount = 0;
	for (var count = 0; count < Str.length; count++) {
		if (alloweduser.indexOf(Str.substring(count, count + 1)) == -1) {
			totcount++;
		}
	};
	if (totcount != 0) {
		return (true);
	}
	return (false);
}

function validateReCaptcha(captcha_response) {
	if (captcha_response != "") {
		return true;
	} else {
		return false
	}
}

jQuery.fn.makeRequest = function(method, url, data, successFunction) {
	$.ajax
		({
			type: method,	  			// Ex: 'POST' or 'GET'
			url: url,       			// Ex:  'home/filelist.html'
			data: data,     			// Ex: {path:'/'}
			success: successFunction		// The call back function to be called on success.
		});
};

function showError(ele, msg) {
	$(ele).show();
	$(ele).text(msg);
}



