jQuery(document).ready(function($) {
// first letter of name uppercase
$(".zen_name_field").on("keydown", function(event) {
if (this.selectionStart == 0 && event.keyCode >= 65 && event.keyCode <= 90 && !(event.shiftKey) && !(event.ctrlKey) && !(event.metaKey) && !(event.altKey)) {
var $t = $(this);
event.preventDefault();
var char = String.fromCharCode(event.keyCode);
$t.val(char + $t.val().slice(this.selectionEnd));
this.setSelectionRange(1,1);
}
});
// double click protection to stop duplicate submissions
$("#zrf_submit").removeAttr("disabled");
$("#zrf-form").bind("submit", function(e) {
if (window.File && window.FileReader && window.FileList && window.Blob) {
var fileUpload = $("input[type='file']");
if (parseInt(fileUpload.get(0).files.length) > 1){
e.preventDefault();
alert("You can only upload a maximum of 1 files.");
}
var fileInput = $("#zen_files");
//get data from file input field
if (fileInput.val()) {
var fileSize = fileInput[0].files[0].size;
var fileName = fileInput[0].files[0].name;
// check if file is correct size
if (fileSize > 7340032) {
e.preventDefault();
alert("Uploaded file is too large.");
}
// check if file type is allowed
var re = /(?:\.([^.]+))?$/; // https://stackoverflow.com/questions/680929/how-to-extract-extension-from-filename-string-in-javascript
var fileExt = "." + re.exec(fileName)[1];
var validExts = [".jpg",".jpeg",".png",".gif",".pdf",".txt",".csv",".xls",".xlsx",".doc",".docx"];
if ($.inArray(fileExt, validExts) == -1) {
e.preventDefault();
alert("Uploaded file type is not allowed.");
}
}
}
// check any URL fields
$(this).find(".zrf_input_url").each(function() {
// is the field required and has been left as http:// default?
if (($(this).prop("required"))&& ($(this).val() == "http://")) {
alert("Please enter a valid URL");
$(this).css("border", "2px solid #000");
e.preventDefault();
return false;
}
});
// disable submit button
$(this).find("#zrf_submit").attr("disabled", "disabled");
// re-enable after 3 seconds
setTimeout( function() {
$("form").find("#zrf_submit").removeAttr("disabled");
}, 3000);
});
});