We want to reward you for being such loyal customers! Sign up for our VCB VIP list and be the first to hear about sales going on at Village Commons Bookstore.
And as an added benefit of being a VCB VIP, receive notifications of VIP-only sales exclusive only to our VIPs.
/*
* ST Signup Forms styles
*/
/* Fonts and helpers */
.st-title {
font-size: 1.25em;
font-weight: bold;
line-height: 1.5em;
color: rgba(0, 0, 0, 0.87);
margin-bottom: 8px;
}
.st-general-error {
font-size: 1.25em;
line-height: 1.5em;
color: #F44336;
margin-bottom: 8px;
text-align: center;
}
/* Error icon */
.st-general-error img {
width: 1.25em;
height: 1.25em;
margin-bottom: -0.2em;
}
.st-font-caption {
font-size: 12px;
color: rgba(0, 0, 0, 0.54);
line-height: 14px;
font-weight: 400;
}
.st-font-caption a {
color: rgba(0, 0, 0, 0.54);
}
.st-color-red {
color: #F44336;
}
.st-hidden {
display: none;
}
/* Sign-Up form */
.st-signupform {
max-width: 392px;
border-radius: 4px;
box-sizing: border-box;
padding: 24px;
font-family: sans-serif;
font-size: 14px;
color: rgba(0, 0, 0, 0.87);
line-height: 1.5;
background: white;
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.14);
}
.st-signupform__label {
color: gray;
font-weight: bold;
font-size: 12px;
line-height: 2em;
text-transform: uppercase;
}
.st-signupform input:focus,
.st-signupform select:focus,
.st-signupform textarea:focus,
.st-signupform button:focus {
outline: none;
}
.st-signupform .st-error-message {
-moz-transform: translateY(-16px);
-webkit-transform: translateY(-16px);
-o-transform: translateY(-16px);
-ms-transform: translateY(-16px);
transform: translateY(-16px);
color: red;
}
.st-signupform footer {
font-size: 12px;
color: rgba(0, 0, 0, 0.54);
text-align: center;
margin-top: 8px;
}
.st-signupform footer a {
color: rgba(0, 0, 0, 0.54);
}
.st-signupform div {
position: relative;
}
.st-signupform div.required:after {
display: block;
content: "*";
color: #F44336;
font-size: 32px;
text-align: right;
/*background: white;*/
position: absolute;
right: 9px;
top: 25px;
width: 10px;
height: 20px;
}
.st-signupform input[type="text"],textarea {
width: 100%;
background-color: white;
border: 1px solid rgba(0, 27, 72, 0.32);
border-radius: 4px;
box-sizing: border-box;
padding: 8px;
font-size: 14px;
margin-bottom: 16px;
outline: none;
box-shadow: 0 0 4px rgba(35, 153, 241, 0);
-webkit-transition: .3s all;
transition: .3s all;
}
.st-signupform input[type="text"]:focus, textarea:focus {
border-color: #2399f1;
box-shadow: 0 0 4px rgba(35, 153, 241, 0.5);
-webkit-transition: .3s all;
transition: .3s all;
}
.st-signupform input[type="submit"] {
display: block;
border-radius: 4px;
box-sizing: border-box;
padding: 8px 16px;
font-size: 14px;
text-decoration: none;
text-align: center;
cursor: pointer;
line-height: 20px !important;
background-color: rgba(255, 255, 255, 0);
border: 1px solid rgba(0, 27, 72, 0.12);
color: white;
background-image: -webkit-linear-gradient(top, #2399f1 0%, #0f7bec 100%);
background-image: linear-gradient(to bottom, #2399f1 0%, #0f7bec 100%);
margin: 12px auto;
}
.st-signupform input.st-signupform-validation-error, textarea.st-signupform-validation-error,
.st-signupform input.st-signupform-validation-error:focus, textarea.st-signupform-validation-error:focus {
border-color: #F44336;
}
.st-signupform textarea {
padding-right: 24px;
resize: vertical;
min-height: 80px;
max-height: 200px;
}
(function() {
var inputErrorClassName = "st-signupform-validation-error";
function clearInputValidationErrors() {
var inputs = document.getElementsByClassName(inputErrorClassName);
for (var i = 0, l = inputs.length; i < l; i++) {
inputs[i].classList.remove(inputErrorClassName);
}
}
function handleFormSubmit(event) {
event.preventDefault();
clearInputValidationErrors();
document.getElementById("server-error-message").innerText = "";
if (!document.getElementById("terms-agreed-checkbox").checked) {
document.getElementById("terms-agreed-error").className = "st-color-red";
return false;
}
var form = document.getElementById("st-join-web-form");
var data = {};
for (var i = 0, ii = form.length; i < ii; ++i) {
var input = form[i];
if (input.name) {
data[input.name] = input.value;
}
}
document.getElementById("terms-agreed-error").className = "st-hidden";
var request = new XMLHttpRequest();
request.open("POST", "https://app2.simpletexting.com/join/joinContact");
request.onload = function () {
var buttonBox = document.getElementById("st-join-web-form-submit-button-box");
var errMsg = "";
var fieldId;
if (request.status === 200) {
buttonBox.innerHTML = "Your data has been successfully submitted!";
form.reset()
} else if (request.status === 418) {
try {
var error = JSON.parse(request.responseText);
if (error.code === "UserHasContactWithSamePhoneOrEmail") {
if (error.phoneNumber) {
errMsg = "Phone number already exists";
fieldId = "phone";
} else {
errMsg = "Email already exists";
fieldId = "email";
}
} else if (error.code === "CustomFieldsValidationException") {
errMsg = error.reasons[0].reason;
fieldId = error.reasons[0].field;
} else {
errMsg = error.reason;
fieldId = error.field;
}
} catch (e) {
console.dir(e);
}
}
if (request.status !== 200) {
var errorMessageEl = document.getElementById("server-error-message");
errorMessageEl.innerText = errMsg || "Internal Error. Please, try later.";
}
if (fieldId) {
document.getElementById(fieldId).classList.add(inputErrorClassName);
}
};
request.setRequestHeader("Content-Type", "application/json; charset=UTF-8");
request.send(JSON.stringify(data));
}
// (XXX)
var getPhoneFirstPart = function (number) {
if (number.length === 0) {
return '';
}
var prefix = ' (';
var value = number.slice(0, 3);
return prefix + value;
};
// (xxx) xxx
var getPhoneSecondPart = function (number) {
if (number.length < 4) {
return '';
}
var prefix = ') ';
var value = number.slice(3, 6);
return prefix + value;
};
// (xxx) xxx-xxxx
var getPhoneThirdPart = function (number) {
if (number.length < 7) {
return '';
}
var prefix = '-';
var value = number.slice(6, 10);
return prefix + value;
};
var handleInputPhoneInput = function(e) {
var target = e.currentTarget;
var val = e.currentTarget.value;
var numberVal = val.replace(/\D/g, "" );
var value = getPhoneFirstPart(numberVal); // +1
value = value ? value + getPhoneSecondPart(numberVal) : ''; // xxx
value = value ? value + getPhoneThirdPart(numberVal) : ''; // -xxxx
target.value = value;
};
window.onload = function () {
var form = document.getElementById("st-join-web-form");
if (form.addEventListener) {
form.addEventListener("submit", handleFormSubmit);
} else if (form.attachEvent) {
form.attachEvent("onsubmit", handleFormSubmit);
}
var phoneInputs = document.querySelectorAll('input[data-type="phone"]');
for (var i = 0; i < phoneInputs.length; i++) {
phoneInputs[i].addEventListener('input', handleInputPhoneInput);
}
}
})();
PhoneE-mailFirst nameLast name
Please send me mobile text messages.
I agree to the
terms.
You have to agree on terms in order to proceed to the subscription.
SMS marketing powered by SimpleTexting.com