www.lakeshorelearning.com
Open in
urlscan Pro
95.101.111.170
Public Scan
Submitted URL: https://click.mail.lakeshorelearning.com/?qs=d4724409395b5ef64c5d7138ecc6b7af3e56ff5318935375206e4bc3d20b01f0cf97ab1224ef170df8284ec83ed1...
Effective URL: https://www.lakeshorelearning.com/help/preference-center?utm_content=O_Footer_Update_Profile&utm_campaign=20230508_4893143_Parents...
Submission: On May 15 via api from BE — Scanned from DE
Effective URL: https://www.lakeshorelearning.com/help/preference-center?utm_content=O_Footer_Update_Profile&utm_campaign=20230508_4893143_Parents...
Submission: On May 15 via api from BE — Scanned from DE
Form analysis
8 forms found in the DOM<form class="pc-search header-search" data-bind="submit: search" role="search">
<label for="search" class="sr-only">Search:</label>
<span class="ll-typeahead" data-bind="click: setDTMData"><span class="ae-compliance-indent" style="display:none;" id="ae_search_instructions">To navigate through search suggestions, begin typing then use down and up arrow keys.</span>
<input id="search" name="search" type="text" class="form-control header-link" autocapitalize="none" autocomplete="off" target-submit-jselector="#btnSearch" data-bind="attr: {'placeholder': placeholder},
typeahead : options,
event: {blur: onBlurSearch, paste: onPasteSearch, keydown: onKeydownSearch, keyup: onKeyup},
validateInput:'LtrNumCh2'" automation-id="search_input" placeholder="What can we help you find?" aria-describedby="ae_search_instructions">
<button class="ll-typeahead-remove header-link ls-icon icn-x-close-lgt" aria-label="Remove search input" style="display: none;"></button>
<button id="btnSearch" data-bind="event: {blur: onBlurSearch }" class="ls-icon icn-search-hvy-rgt ta-search-icon header-link" aria-live="polite" type="submit" automation-id="search_button"><span style="display:none;"
class="ae-compliance-indent">Search</span></button>
</span>
</form>
<form class="form panel-catreq">
<div class="row tight">
<p>Fields in <strong>bold</strong> are required.</p>
<div class="col-sm-6 pr30" data-bind="css: {'pr30': !isMobileView()}">
<h2>Old Address</h2>
<div data-bind="css: $data.errors().oldFirstName ? 'has-error' : ''">
<label class="control-label" role="presentation" id="ae-formFieldLabelOptIn_uex3des0mi8_0"><strong>First Name</strong></label>
<input type="text" id="oldFirstName" class="form-control input-md mb15" escape="true" aria-required="true" maxlength="40" required="" data-bind="value: oldFirstName, validateInput:'LtrNumCh1', enterkey: updateMailAddress"
aria-labelledby="ae-formFieldLabelOptIn_uex3des0mi8_0" autocomplete="given-name">
<div class="help-block" data-bind="visible: $data.errors().oldFirstName, text: $data.errors().oldFirstName" style="display: none;"></div>
</div>
<div data-bind="css: $data.errors().oldLastName ? 'has-error' : ''">
<label class="control-label" role="presentation" id="ae-formFieldLabelOptIn_uex3des0mi8_1"><strong>Last Name</strong></label>
<input type="text" id="oldLastName" class="form-control input-md mb15" escape="true" aria-required="true" maxlength="40" required="" data-bind="value: oldLastName, validateInput:'LtrNumCh1', enterkey: updateMailAddress"
aria-labelledby="ae-formFieldLabelOptIn_uex3des0mi8_1" autocomplete="family-name">
<div class="help-block" data-bind="visible: $data.errors().oldLastName, text: $data.errors().oldLastName" style="display: none;"></div>
</div>
<div data-bind="css: $data.errors().oldAddress1 ? 'has-error' : ''">
<label class="control-label" role="presentation" id="ae-formFieldLabelOptIn_uex3des0mi8_2"><strong>Address 1</strong></label>
<input type="text" id="field-autocomplete-address-" class="form-control input-md mb15" escape="true" aria-required="true" maxlength="50" required="" data-bind="value: oldAddress1, validateInput:'inputAddress', valueUpdate: 'afterkeydown', enterkey: updateMailAddress,
addressAutoFill: {
idSuffix: null,
singleLineAddressEnabled: false,
onUpdate: $component.oldMailAddressAutofill
}" autocomplete="" aria-labelledby="ae-formFieldLabelOptIn_uex3des0mi8_2">
<div class="help-block" data-bind="visible: $data.errors().oldAddress1, text: $data.errors().oldAddress1" style="display: none;"></div>
</div>
<div data-bind="css: $data.errors().oldAddress2 ? 'has-error' : ''">
<label class="control-label" role="presentation" id="ae-formFieldLabelOptIn_uex3des0mi8_3">Address 2</label>
<input type="text" id="oldAddress2" class="form-control input-md mb15" escape="true" maxlength="50" data-bind="value: oldAddress2, validateInput:'inputAddress', valueUpdate: 'afterkeydown', enterkey: updateMailAddress"
aria-labelledby="ae-formFieldLabelOptIn_uex3des0mi8_3">
<div class="help-block" data-bind="visible: $data.errors().oldAddress2, text: $data.errors().oldAddress2" style="display: none;"></div>
</div>
<div data-bind="css: $data.errors().oldZip ? 'has-error' : ''">
<label class="control-label" role="presentation" id="ae-formFieldLabelOptIn_uex3des0mi8_4"><strong>Zip/Postal Code</strong></label>
<input type="text" id="oldZip" class="form-control input-md mb15" escape="true" maxlength="10" aria-required="true" required="" data-bind="value: oldZip, validateInput:'LtrNumCh4', enterkey: updateMailAddress"
aria-labelledby="ae-formFieldLabelOptIn_uex3des0mi8_4">
<div class="help-block" data-bind="visible: $data.errors().oldZip, text: $data.errors().oldZip" style="display: none;"></div>
</div>
<div data-bind="css: $data.errors().oldCity ? 'has-error' : ''">
<label class="control-label" role="presentation" id="ae-formFieldLabelOptIn_uex3des0mi8_5"><strong>City</strong></label>
<input type="text" id="oldCity" class="form-control input-md mb15" escape="true" maxlength="30" aria-required="true" required="" data-bind="value: oldCity, validateInput:'LtrCh1', enterkey: updateMailAddress"
aria-labelledby="ae-formFieldLabelOptIn_uex3des0mi8_5">
<div class="help-block" data-bind="visible: $data.errors().oldCity, text: $data.errors().oldCity" style="display: none;"></div>
</div>
<div data-bind="css: $data.errors().oldState ? 'has-error' : ''">
<label class="control-label" role="presentation" id="ae-formFieldLabelOptIn_uex3des0mi8_6">
<!-- ko if: oldStates() != null && oldStates().length > 0 -->
<strong>State</strong>
<!-- /ko -->
<!-- ko ifnot: oldStates() != null && oldStates().length > 0 --><!-- /ko -->
</label><br>
<!-- ko if: oldStates() != null && oldStates().length > 0 -->
<span class="select-wrap mb15">
<select class="form-control input-md" data-bind="options: oldStates, value: oldState, optionsValue: 'shortName', optionsText: 'name', enterkey: updateMailAddress, optionsAfterRender: disableInactiveOptions,
attr: {aria-required: oldStates() != null && oldStates().length > 0 ? true : false}" aria-required="true" aria-labelledby="ae-formFieldLabelOptIn_uex3des0mi8_6">
<option value="" disabled=""> Select</option>
<option value="AL">Alabama</option>
<option value="AK">Alaska</option>
<option value="AZ">Arizona</option>
<option value="AR">Arkansas</option>
<option value="CA">California</option>
<option value="CO">Colorado</option>
<option value="CT">Connecticut</option>
<option value="DE">Delaware</option>
<option value="DC">District of Columbia</option>
<option value="FL">Florida</option>
<option value="GA">Georgia</option>
<option value="HI">Hawaii</option>
<option value="ID">Idaho</option>
<option value="IL">Illinois</option>
<option value="IN">Indiana</option>
<option value="IA">Iowa</option>
<option value="KS">Kansas</option>
<option value="KY">Kentucky</option>
<option value="LA">Louisiana</option>
<option value="ME">Maine</option>
<option value="MD">Maryland</option>
<option value="MA">Massachusetts</option>
<option value="MI">Michigan</option>
<option value="MN">Minnesota</option>
<option value="MS">Mississippi</option>
<option value="MO">Missouri</option>
<option value="MT">Montana</option>
<option value="NE">Nebraska</option>
<option value="NV">Nevada</option>
<option value="NH">New Hampshire</option>
<option value="NJ">New Jersey</option>
<option value="NM">New Mexico</option>
<option value="NY">New York</option>
<option value="NC">North Carolina</option>
<option value="ND">North Dakota</option>
<option value="OH">Ohio</option>
<option value="OK">Oklahoma</option>
<option value="OR">Oregon</option>
<option value="PA">Pennsylvania</option>
<option value="RI">Rhode Island</option>
<option value="SC">South Carolina</option>
<option value="SD">South Dakota</option>
<option value="TN">Tennessee</option>
<option value="TX">Texas</option>
<option value="UT">Utah</option>
<option value="VT">Vermont</option>
<option value="VA">Virginia</option>
<option value="WA">Washington</option>
<option value="WV">West Virginia</option>
<option value="WI">Wisconsin</option>
<option value="WY">Wyoming</option>
<option value="Delimiter1" disabled=""> ----------------------</option>
<option value="AA">U.S. Armed Forces – Americas</option>
<option value="AE">U.S. Armed Forces – Europe</option>
<option value="AP">U.S. Armed Forces – Pacific</option>
<option value="Delimiter2" disabled=""> ----------------------</option>
<option value="AS">American Samoa</option>
<option value="GU">Guam</option>
<option value="MP">Northern Mariana Islands</option>
<option value="PR">Puerto Rico</option>
<option value="UM">U.S. Minor Outlying Islands</option>
<option value="VI">U.S. Virgin Islands</option>
</select>
<span class="caret caret-select"></span>
</span>
<!-- /ko -->
<!-- ko ifnot: oldStates() != null && oldStates().length > 0 --><!-- /ko -->
<div class="help-block" data-bind="visible: $data.errors().oldState, text: $data.errors().oldState" style="display: none;"></div>
</div>
<div data-bind="css: $data.errors().oldEmail ? 'has-error' : ''">
<label class="control-label" role="presentation" id="ae-formFieldLabelOptIn_uex3des0mi8_7"><strong>Email</strong></label>
<input type="text" value="" id="oldEmail" escape="true" class="form-control input-md mb15 email-input" aria-required="true" maxlength="64" required=""
data-bind="value: oldEmail, validateInput:'LtrNumCh6', valueUpdate: 'afterkeydown', enterkey: updateMailAddress" aria-labelledby="ae-formFieldLabelOptIn_uex3des0mi8_7" autocomplete="email">
<div class="help-block" data-bind="visible: $data.errors().oldEmail, text: $data.errors().oldEmail" style="display: none;"></div>
</div>
</div>
<div class="col-sm-6 pl30" data-bind="css: isMobileView() ? 'borderTop mt25' : 'pl30'">
<h2>New Address</h2>
<div data-bind="css: $data.errors().newFirstName ? 'has-error' : ''">
<label class="control-label" role="presentation" id="ae-formFieldLabelOptIn_uex3des0mi8_8"><strong>First Name</strong></label>
<input type="text" id="newFirstName" class="form-control input-md mb15" escape="true" aria-required="true" maxlength="40" required="" data-bind="value: newFirstName, validateInput:'LtrNumCh1', enterkey: updateMailAddress"
aria-labelledby="ae-formFieldLabelOptIn_uex3des0mi8_8" autocomplete="given-name">
<div class="help-block" data-bind="visible: $data.errors().newFirstName, text: $data.errors().newFirstName" style="display: none;"></div>
</div>
<div data-bind="css: $data.errors().newLastName ? 'has-error' : ''">
<label class="control-label" role="presentation" id="ae-formFieldLabelOptIn_uex3des0mi8_9"><strong>Last Name</strong></label>
<input type="text" id="newLastName" class="form-control input-md mb15" escape="true" aria-required="true" maxlength="40" required="" data-bind="value: newLastName, validateInput:'LtrNumCh1', enterkey: updateMailAddress"
aria-labelledby="ae-formFieldLabelOptIn_uex3des0mi8_9" autocomplete="family-name">
<div class="help-block" data-bind="visible: $data.errors().newLastName, text: $data.errors().newLastName" style="display: none;"></div>
</div>
<div data-bind="css: $data.errors().newAddress1 ? 'has-error' : ''">
<label class="control-label" role="presentation" id="ae-formFieldLabelOptIn_uex3des0mi8_10"><strong>Address 1</strong></label>
<input type="text" id="field-autocomplete-address-1" class="form-control input-md mb15" escape="true" aria-required="true" maxlength="50" required="" data-bind="value: newAddress1, validateInput:'inputAddress', valueUpdate: 'afterkeydown', enterkey: updateMailAddress,
addressAutoFill: {
idSuffix: 1,
singleLineAddressEnabled: false,
onUpdate: $component.newMailAddressAutofill
}" autocomplete="" aria-labelledby="ae-formFieldLabelOptIn_uex3des0mi8_10">
<div class="help-block" data-bind="visible: $data.errors().newAddress1, text: $data.errors().newAddress1" style="display: none;"></div>
</div>
<div data-bind="css: $data.errors().newAddress2 ? 'has-error' : ''">
<label class="control-label" role="presentation" id="ae-formFieldLabelOptIn_uex3des0mi8_11">Address 2</label>
<input type="text" id="newAddress2" class="form-control input-md mb15" escape="true" maxlength="50" data-bind="value: newAddress2, validateInput:'inputAddress', valueUpdate: 'afterkeydown', enterkey: updateMailAddress"
aria-labelledby="ae-formFieldLabelOptIn_uex3des0mi8_11">
<div class="help-block" data-bind="visible: $data.errors().newAddress2, text: $data.errors().newAddress2" style="display: none;"></div>
</div>
<div data-bind="css: $data.errors().newZip ? 'has-error' : ''">
<label class="control-label" role="presentation" id="ae-formFieldLabelOptIn_uex3des0mi8_12"><strong>Zip/Postal Code</strong></label>
<input type="text" id="newZip" class="form-control input-md mb15" escape="true" maxlength="10" aria-required="true" required="" data-bind="value: newZip, validateInput:'LtrNumCh4', enterkey: updateMailAddress"
aria-labelledby="ae-formFieldLabelOptIn_uex3des0mi8_12">
<div class="help-block" data-bind="visible: $data.errors().newZip, text: $data.errors().newZip" style="display: none;"></div>
</div>
<div data-bind="css: $data.errors().newCity ? 'has-error' : ''">
<label class="control-label" role="presentation" id="ae-formFieldLabelOptIn_uex3des0mi8_13"><strong>City</strong></label>
<input type="text" id="newCity" class="form-control input-md mb15" escape="true" maxlength="30" aria-required="true" required="" data-bind="value: newCity, validateInput:'LtrNumCh5', enterkey: updateMailAddress"
aria-labelledby="ae-formFieldLabelOptIn_uex3des0mi8_13">
<div class="help-block" data-bind="visible: $data.errors().newCity, text: $data.errors().newCity" style="display: none;"></div>
</div>
<div data-bind="css: $data.errors().newState ? 'has-error' : ''">
<label class="control-label" role="presentation" id="ae-formFieldLabelOptIn_uex3des0mi8_14">
<!-- ko if: newStates() != null && newStates().length > 0 -->
<strong>State</strong>
<!-- /ko -->
<!-- ko ifnot: newStates() != null && newStates().length > 0 --><!-- /ko -->
</label><br>
<!-- ko if: newStates() != null && newStates().length > 0 -->
<span class="select-wrap mb15">
<select class="form-control input-md" data-bind="options: newStates, value: newState, optionsValue: 'shortName', optionsText: 'name', disableInactiveOptions, enterkey: updateMailAddress, optionsAfterRender: disableInactiveOptions,
attr: {aria-required: newStates() != null && newStates().length > 0 ? true : false}" aria-required="true" aria-labelledby="ae-formFieldLabelOptIn_uex3des0mi8_14">
<option value="" disabled=""> Select</option>
<option value="AL">Alabama</option>
<option value="AK">Alaska</option>
<option value="AZ">Arizona</option>
<option value="AR">Arkansas</option>
<option value="CA">California</option>
<option value="CO">Colorado</option>
<option value="CT">Connecticut</option>
<option value="DE">Delaware</option>
<option value="DC">District of Columbia</option>
<option value="FL">Florida</option>
<option value="GA">Georgia</option>
<option value="HI">Hawaii</option>
<option value="ID">Idaho</option>
<option value="IL">Illinois</option>
<option value="IN">Indiana</option>
<option value="IA">Iowa</option>
<option value="KS">Kansas</option>
<option value="KY">Kentucky</option>
<option value="LA">Louisiana</option>
<option value="ME">Maine</option>
<option value="MD">Maryland</option>
<option value="MA">Massachusetts</option>
<option value="MI">Michigan</option>
<option value="MN">Minnesota</option>
<option value="MS">Mississippi</option>
<option value="MO">Missouri</option>
<option value="MT">Montana</option>
<option value="NE">Nebraska</option>
<option value="NV">Nevada</option>
<option value="NH">New Hampshire</option>
<option value="NJ">New Jersey</option>
<option value="NM">New Mexico</option>
<option value="NY">New York</option>
<option value="NC">North Carolina</option>
<option value="ND">North Dakota</option>
<option value="OH">Ohio</option>
<option value="OK">Oklahoma</option>
<option value="OR">Oregon</option>
<option value="PA">Pennsylvania</option>
<option value="RI">Rhode Island</option>
<option value="SC">South Carolina</option>
<option value="SD">South Dakota</option>
<option value="TN">Tennessee</option>
<option value="TX">Texas</option>
<option value="UT">Utah</option>
<option value="VT">Vermont</option>
<option value="VA">Virginia</option>
<option value="WA">Washington</option>
<option value="WV">West Virginia</option>
<option value="WI">Wisconsin</option>
<option value="WY">Wyoming</option>
<option value="Delimiter1" disabled=""> ----------------------</option>
<option value="AA">U.S. Armed Forces – Americas</option>
<option value="AE">U.S. Armed Forces – Europe</option>
<option value="AP">U.S. Armed Forces – Pacific</option>
<option value="Delimiter2" disabled=""> ----------------------</option>
<option value="AS">American Samoa</option>
<option value="GU">Guam</option>
<option value="MP">Northern Mariana Islands</option>
<option value="PR">Puerto Rico</option>
<option value="UM">U.S. Minor Outlying Islands</option>
<option value="VI">U.S. Virgin Islands</option>
</select>
<span class="caret caret-select"></span>
</span>
<!-- /ko -->
<!-- ko ifnot: newStates() != null && newStates().length > 0 --><!-- /ko -->
<div class="help-block" data-bind="visible: $data.errors().newState, text: $data.errors().newState" style="display: none;"></div>
</div>
<!-- BEGIN BUTTON STYLE UPDATE -->
<div class="ll-btn-container align-right full-width">
<button class="btn btn-sld-blue ll-btn-sm mt20" data-bind="clickBubble: false, click: updateMailAddress, css: {'subscribe-btn': isMobileView()}" name="update">Update</button>
</div>
<!-- END BUTTON STYLE UPDATE -->
<div class="clearfix"> </div>
</div>
</div>
</form>
<form class="form panel-catreq">
<div class="row tight">
<div class="col-md-6">
<p class="mb0"><strong>Please remove me from the following lists:</strong></p>
<div class="row mb20">
<div class="col-md-6">
<label role="presentation"><input type="checkbox" name="removeChildhood" data-bind="checked: removeChildhood">Early Childhood</label>
</div>
<div class="col-md-6">
<label role="presentation"><input type="checkbox" name="removeElementary" data-bind="checked: removeElementary">Elementary</label>
</div>
<div class="col-md-6">
<label role="presentation"><input type="checkbox" name="removeGFGM" data-bind="checked: removeGFGM">Gifts for Growing Minds</label>
</div>
<div class="col-md-6">
<label role="presentation"><input type="checkbox" name="removeFlyer" data-bind="checked: removeFlyer">Promotional Flyer</label>
</div>
</div>
<p>Fields in <strong>bold</strong> are required.</p>
<div data-bind="css: $data.errors().oldFirstName ? 'has-error' : ''">
<label class="control-label" role="presentation" id="ae-formFieldLabelOptIn_uex3des0mi8_15"><strong>First Name</strong></label>
<input type="text" id="unSubnewFirstName" class="form-control input-md mb15" escape="true" maxlength="40" required="" data-bind="value: oldFirstName, validateInput:'LtrNumCh1', enterkey: removeMailAddress"
aria-labelledby="ae-formFieldLabelOptIn_uex3des0mi8_15" autocomplete="given-name">
<div class="help-block" data-bind="visible: $data.errors().oldFirstName, text: $data.errors().oldFirstName" style="display: none;"></div>
</div>
<div data-bind="css: $data.errors().oldLastName ? 'has-error' : ''">
<label class="control-label" role="presentation" id="ae-formFieldLabelOptIn_uex3des0mi8_16"><strong>Last Name</strong></label>
<input type="text" id="unSubnewLastName" class="form-control input-md mb15" escape="true" maxlength="40" required="" data-bind="value: oldLastName, validateInput:'LtrNumCh1', enterkey: removeMailAddress"
aria-labelledby="ae-formFieldLabelOptIn_uex3des0mi8_16" autocomplete="family-name">
<div class="help-block" data-bind="visible: $data.errors().oldLastName, text: $data.errors().oldLastName" style="display: none;"></div>
</div>
<div data-bind="css: $data.errors().oldAddress1 ? 'has-error' : ''">
<label class="control-label" role="presentation" id="ae-formFieldLabelOptIn_uex3des0mi8_17"><strong>Address 1</strong></label>
<input type="text" id="unSubnewAddress1" class="form-control input-md mb15" required="" escape="true" maxlength="50" data-bind="value: oldAddress1, validateInput:'inputAddress', valueUpdate: 'afterkeydown', enterkey: removeMailAddress"
aria-labelledby="ae-formFieldLabelOptIn_uex3des0mi8_17">
<div class="help-block" data-bind="visible: $data.errors().oldAddress1, text: $data.errors().oldAddress1" style="display: none;"></div>
</div>
<div data-bind="css: $data.errors().oldAddress2 ? 'has-error' : ''">
<label class="control-label" role="presentation" id="ae-formFieldLabelOptIn_uex3des0mi8_18">Address 2</label>
<input type="text" id="unSubnewAddress2" class="form-control input-md mb15" escape="true" maxlength="50" data-bind="value: oldAddress2, validateInput:'inputAddress', valueUpdate: 'afterkeydown', enterkey: removeMailAddress"
aria-labelledby="ae-formFieldLabelOptIn_uex3des0mi8_18">
<div class="help-block" data-bind="visible: $data.errors().oldAddress2, text: $data.errors().oldAddress2" style="display: none;"></div>
</div>
<div data-bind="css: $data.errors().oldZip ? 'has-error' : ''">
<label class="control-label" role="presentation" id="ae-formFieldLabelOptIn_uex3des0mi8_19"><strong>Zip/Postal Code</strong></label>
<input type="text" id="unSubnewZip" class="form-control input-md mb15" escape="true" maxlength="10" required="" data-bind="value: oldZip, validateInput:'LtrNumCh4', enterkey: removeMailAddress"
aria-labelledby="ae-formFieldLabelOptIn_uex3des0mi8_19">
<div class="help-block" data-bind="visible: $data.errors().oldZip, text: $data.errors().oldZip" style="display: none;"></div>
</div>
<div data-bind="css: $data.errors().oldCity ? 'has-error' : ''">
<label class="control-label" role="presentation" id="ae-formFieldLabelOptIn_uex3des0mi8_20"><strong>City</strong></label>
<input type="text" id="unSubnewCity" class="form-control input-md mb15" escape="true" maxlength="30" required="" data-bind="value: oldCity, validateInput:'LtrCh1', enterkey: removeMailAddress"
aria-labelledby="ae-formFieldLabelOptIn_uex3des0mi8_20">
<div class="help-block" data-bind="visible: $data.errors().oldCity, text: $data.errors().oldCity" style="display: none;"></div>
</div>
<div data-bind="css: $data.errors().oldState ? 'has-error' : ''">
<label class="control-label" role="presentation" id="ae-formFieldLabelOptIn_uex3des0mi8_21">
<!-- ko if: oldStates() != null && oldStates().length > 0 -->
<strong>State</strong>
<!-- /ko -->
<!-- ko ifnot: oldStates() != null && oldStates().length > 0 --><!-- /ko -->
</label><br>
<!-- ko if: oldStates() != null && oldStates().length > 0 -->
<span class="select-wrap mb15">
<select class="form-control input-md" data-bind="options: oldStates, value: oldState, optionsValue: 'shortName', optionsText: 'name', enterkey: removeMailAddress, optionsAfterRender: disableInactiveOptions"
aria-labelledby="ae-formFieldLabelOptIn_uex3des0mi8_21">
<option value="" disabled=""> Select</option>
<option value="AL">Alabama</option>
<option value="AK">Alaska</option>
<option value="AZ">Arizona</option>
<option value="AR">Arkansas</option>
<option value="CA">California</option>
<option value="CO">Colorado</option>
<option value="CT">Connecticut</option>
<option value="DE">Delaware</option>
<option value="DC">District of Columbia</option>
<option value="FL">Florida</option>
<option value="GA">Georgia</option>
<option value="HI">Hawaii</option>
<option value="ID">Idaho</option>
<option value="IL">Illinois</option>
<option value="IN">Indiana</option>
<option value="IA">Iowa</option>
<option value="KS">Kansas</option>
<option value="KY">Kentucky</option>
<option value="LA">Louisiana</option>
<option value="ME">Maine</option>
<option value="MD">Maryland</option>
<option value="MA">Massachusetts</option>
<option value="MI">Michigan</option>
<option value="MN">Minnesota</option>
<option value="MS">Mississippi</option>
<option value="MO">Missouri</option>
<option value="MT">Montana</option>
<option value="NE">Nebraska</option>
<option value="NV">Nevada</option>
<option value="NH">New Hampshire</option>
<option value="NJ">New Jersey</option>
<option value="NM">New Mexico</option>
<option value="NY">New York</option>
<option value="NC">North Carolina</option>
<option value="ND">North Dakota</option>
<option value="OH">Ohio</option>
<option value="OK">Oklahoma</option>
<option value="OR">Oregon</option>
<option value="PA">Pennsylvania</option>
<option value="RI">Rhode Island</option>
<option value="SC">South Carolina</option>
<option value="SD">South Dakota</option>
<option value="TN">Tennessee</option>
<option value="TX">Texas</option>
<option value="UT">Utah</option>
<option value="VT">Vermont</option>
<option value="VA">Virginia</option>
<option value="WA">Washington</option>
<option value="WV">West Virginia</option>
<option value="WI">Wisconsin</option>
<option value="WY">Wyoming</option>
<option value="Delimiter1" disabled=""> ----------------------</option>
<option value="AA">U.S. Armed Forces – Americas</option>
<option value="AE">U.S. Armed Forces – Europe</option>
<option value="AP">U.S. Armed Forces – Pacific</option>
<option value="Delimiter2" disabled=""> ----------------------</option>
<option value="AS">American Samoa</option>
<option value="GU">Guam</option>
<option value="MP">Northern Mariana Islands</option>
<option value="PR">Puerto Rico</option>
<option value="UM">U.S. Minor Outlying Islands</option>
<option value="VI">U.S. Virgin Islands</option>
</select>
<span class="caret caret-select"></span>
</span>
<!-- /ko -->
<!-- ko ifnot: oldStates() != null && oldStates().length > 0 --><!-- /ko -->
<div class="help-block" data-bind="visible: $data.errors().oldState, text: $data.errors().oldState" style="display: none;"></div>
</div>
<div data-bind="css: $data.errors().oldEmail ? 'has-error' : ''">
<label class="control-label" role="presentation" id="ae-formFieldLabelOptIn_uex3des0mi8_22"><strong>Email</strong></label>
<input type="text" value="" id="unSubnewEmail" class="form-control input-md mb15 email-input" escape="true" maxlength="64" required=""
data-bind="value: oldEmail, validateInput:'LtrNumCh6', valueUpdate: 'afterkeydown', enterkey: removeMailAddress" aria-labelledby="ae-formFieldLabelOptIn_uex3des0mi8_22" autocomplete="email">
<div class="help-block" data-bind="visible: $data.errors().oldEmail, text: $data.errors().oldEmail" style="display: none;"></div>
</div>
<!-- BEGIN BUTTON STYLE UPDATE -->
<div class="ll-btn-container align-right full-width">
<button class="btn btn-sld-blue ll-btn-sm mt20" data-bind="clickBubble: false, click: removeMailAddress, css: {'subscribe-btn': isMobileView()}" name="remove">Remove</button>
</div>
<!-- END BUTTON STYLE UPDATE -->
<div class="clearfix"> </div>
</div>
</div>
</form>
<form class="footer-email" data-bind="css: {'mb5': emailError().length}">
<label for="footer-email" class="sr-only">enter your email address</label>
<input class="form-control email-input" name="footer-email" id="footer-email" type="email" data-bind="textInput: emailValue,
attr: { placeholder: placeholder, aria-label: placeholder },
validateInput:'LtrNumCh6',
valueUpdate: 'afterkeydown',
enterkey: singUpPreFilledEmail" placeholder="enter your email" aria-label="enter your email" maxlength="64" aria-describedby="ae-emailerror-label">
<div class="ll-btn-container align-right inline subscribe-cta">
<button data-bind="click: singUpPreFilledEmail" id="btnJoin" tabindex="0" class="btn btn-sld-blue ll-btn-sm btn-cta">Join</button>
</div>
</form>
<form class="form" novalidate="novalidate" data-bind="submit: login.loginB2C">
<div class="modal-body">
<!-- ko if: login.loginError() --><!-- /ko -->
<!-- ko if: isReview() --><!-- /ko -->
<div class="form-group" data-bind="css: login.errors().email ? 'has-error' : ''">
<label role="presentation" id="ae-formFieldLabelOptIn_uex3des0mi8_23"><strong>Email</strong></label>
<input name="email" id="emailId" type="email" class="form-control input-lg email-input" placeholder="" maxlength="64" automation-id="login_email" aria-required="true"
data-bind="textInput: login.email, validateInput:'LtrNumCh6', valueUpdate: ['afterkeydown','propertychange','input']" aria-describedby="ae-signin-labels-0" aria-labelledby="ae-formFieldLabelOptIn_uex3des0mi8_23" autocomplete="email">
<div class="help-block" data-bind="visible: login.errors().email, html: login.errors().email" id="ae-signin-labels-0" style="display: none;"></div>
</div>
<div class="form-group password-input" data-bind="css: login.errors().password && !login.loginError()? 'has-error' : '', css: { 'mb5' : $component.showLoyaltyModal }">
<label role="presentation" id="ae-formFieldLabelOptIn_uex3des0mi8_24"><strong>Password</strong></label>
<span class="password-container">
<input name="password" class="form-control input-lg" placeholder="" maxlength="35" data-bind="textInput: login.password,
attr: {'type': showPassword() ? 'text' : 'password'},
valueUpdate: 'afterkeydown',
validateInput:'LtrNumCh3'" automation-id="login_pass" type="password" aria-describedby="ae-signin-labels-1" aria-labelledby="ae-formFieldLabelOptIn_uex3des0mi8_24" autocomplete="current-password">
<i class="password-icon hide-icon" data-bind="css: showPassword() ? 'show-icon' : 'hide-icon', click: function(){showPassword(!showPassword())}" role="button" tabindex="0" aria-label="show password"></i>
</span>
<div class="help-block red" data-bind="visible: login.errors().password && !login.loginError() , parsedHTML: login.errors().password" id="ae-signin-labels-1" style="display: none;"></div>
</div>
</div>
<div class="modal-footer pt0">
<div class="row tight">
<!-- ko ifnot: $component.showLoyaltyModal -->
<!-- BEGIN PRE-LOYALTY FOOTER -->
<div class="logInButton">
<!-- BEGIN BUTTON STYLE UPDATE -->
<div class="ll-btn-container align-right">
<button type="submit" class="btn btn-sld-blue ll-btn-sm " automation-id="login_button">Sign In</button>
</div>
<!-- END BUTTON STYLE UPDATE -->
</div>
<div class="logInButton">
<!-- BEGIN BUTTON STYLE UPDATE -->
<div class="ll-btn-container align-right">
<button type="button" class="btn btn-sld-gray ll-btn-sm" data-dismiss="modal" aria-label="Cancel" automation-id="login_cancel">Cancel</button>
</div>
<!-- END BUTTON STYLE UPDATE -->
</div>
<div class="logInButton text-left">
<p data-bind="visible: login.isSearchWishlist()" style="display: none;">
<a class="modalLink" href="#" style="margin-left: 0px; display: none;" data-bind="visible: login.isSearchWishlist(), clickBubble: false, click: login.openWishlistSearchModal">Find a Shopping List</a>
</p>
<!-- ko ifnot: $component.isRevit() -->
<p class="mb0 hidden"> Don’t have an account? <a class="modalLink" href="#" automation-id="sal_register" s_objectid="global" data-bind="clickBubble: false, click: openRegisterFromLogin">Register now.</a>
</p>
<!-- /ko -->
<a href="" data-dismiss="modal" data-toggle="modal" data-bind="click: login.openForgotPasswordModal">Forgot Password?</a>
</div>
<!-- END PRE-LOYALTY FOOTER -->
<!-- /ko -->
<!-- ko if: showLoyaltyModal --><!-- /ko -->
</div>
</div>
</form>
<form class="form" data-bind="submit: register.registerB2C, css: {'modal-height': isMobileView()}" novalidate="novalidate">
<div class="modal-header">
<span class="close-icon" data-dismiss="modal" aria-label="Close" role="button" tabindex="0" data-ae-blurbtype="button"> </span>
<h4 class="modal-title" id="modal-register-label" data-bind="text: register.isGSA() || oldRegisterModal ? 'Register' : 'Create Account'" role="heading" aria-level="2">Register</h4>
</div>
<div class="register-modal-container" data-bind="css: {'scroll-area': isMobileView()}">
<!-- ko if: !register.isGSA() && !oldRegisterModal --><!-- /ko -->
<div>
<div class="modal-body">
<!-- ko if: register.errorMessages().length > 0 --><!-- /ko -->
<!-- ko if: isReview --><!-- /ko -->
<!-- ko if: register.isGSA() && !oldRegisterModal && !fromFooterLink() --><!-- /ko -->
<div class="row narrow">
<div class="alert alert-danger" data-bind="visible: $component.register.additionalInfoRequiredError()" role="alert" aria-live="polite" style="display: none;">
<span data-bind="html: $component.register.additionalInfoRequiredError()"></span><br>
</div>
<div class="form-group col-sm-6" data-bind="css: {'has-error': $component.register.firstNameError()}">
<label class="required-field-label" role="presentation">First Name</label>
<input name="firstname" automation-id="reg-firstname" maxlength="40" class="form-control input-lg" type="text" aria-required="true" data-bind="textInput: register.firstName, value: register.firstName,validateInput:'LtrNumCh1'"
aria-label="First Name" aria-describedby="ae-register-labels-0" autocomplete="given-name">
<div class="help-block" data-bind="visible: $component.register.firstNameError(), text: $component.register.firstNameError()" id="ae-register-labels-0" style="display: none;"></div>
</div>
<div class="form-group col-sm-6" data-bind="css: {'has-error': $component.register.lastNameError()}">
<label class="required-field-label" role="presentation">Last Name</label>
<input name="lastname" automation-id="reg-lastname" maxlength="40" class="form-control input-lg" type="text" aria-required="true" data-bind="textInput: register.lastName, value: register.lastName,validateInput:'LtrNumCh1'"
aria-label="Last Name" aria-describedby="ae-register-labels-1" autocomplete="family-name">
<div class="help-block" data-bind="visible: $component.register.lastNameError(), text: $component.register.lastNameError()" id="ae-register-labels-1" style="display: none;"></div>
</div>
</div>
<div class="row narrow">
<div class="form-group" data-bind="css: {'has-error': $component.register.emailError()}">
<label class="required-field-label" role="presentation">Email</label>
<input name="email" type="email" maxlength="64" automation-id="email_signup_modal" class="form-control input-lg email-input" aria-required="true" data-bind="textInput: register.email, value: register.email,validateInput:'LtrNumCh6'"
aria-label="Email" aria-describedby="ae-register-labels-2" autocomplete="email">
<div class="help-block" data-dismiss="modal" data-bind="visible: $component.register.emailError(), parsedHTML: $component.register.emailError()" id="ae-register-labels-2" style="display: none;"></div>
</div>
</div>
<div class="row narrow">
<!-- ko component: {
name: 'password-input',
params: {
containerClass: 'col-xs-12',
input: $component.register.password,
errorMsg: $component.register.passwordError,
automationId: 'reg-password'
}
} -->
<div class="password-input form-group col-xs-12" data-bind="css: containerClass, css: {'has-error': errorMsg() && (isServerMsg() || !isValid())}">
<label class="required-field-label" data-bind="text: label, visible: !hideLabel" role="presentation" id="ae-formFieldLabelOptIn_uex3des0mi8_25">Password</label>
<span class="password-container">
<input name="password" maxlength="35" class="password-field form-control input-lg" aria-required="true" data-bind="textInput: input,
initPassword,
valueUpdate: 'afterkeydown',
validateInput:'LtrNumCh3',
css: {'input-lg': !defaultInputSize},
attr: {
'autocomplete' : thisClient.browserName == 'Chrome' ? 'disable' : 'off',
'type': showPassword() ? 'text' : 'password',
'id': inputId,
'placeholder': inputPlaceholder,
'automation-id': automationId
}" autocomplete="off" type="password" id="" placeholder="" automation-id="reg-password" aria-describedby="ae-register-labels-3" aria-labelledby="ae-formFieldLabelOptIn_uex3des0mi8_25">
<i class="password-icon small hide-icon" data-bind="css: showPassword() ? 'show-icon' : 'hide-icon', click: function(){showPassword(!showPassword())}" role="button" tabindex="0" aria-label="show password"></i>
</span>
<div class="help-block lh17 mb0" data-bind="parsedHTML: errorMsg(), visible: errorMsg() && (isServerMsg() || !isValid())" style="display: none;" id="ae-register-labels-3"></div>
<div class="password-prompts" data-bind="slideVisible: showPrompts, css: {'mt4': errorMsg() && (isServerMsg() || !isValid())}" style="display: none; opacity: 0;">
<p class="prompt" data-bind="css: !emptyInput() ? (validLength() ? 'green' : 'red') : ''">
<span data-bind="css: !emptyInput() ? (validLength() ? 'ls-icon icn-check-sld-circle' : 'ls-icon icn-x-close-hvy-circle') : 'ls-icon icn-bullet fs4'" class="ls-icon icn-bullet fs4"></span>
<span>Minimum 8 characters</span>
</p>
<p class="prompt" data-bind="css: !emptyInput() ? (letterIncluded() ? 'green' : 'red') : ''">
<span data-bind="css: !emptyInput() ? (letterIncluded() ? 'ls-icon icn-check-sld-circle' : 'ls-icon icn-x-close-hvy-circle') : 'ls-icon icn-bullet fs4'" class="ls-icon icn-bullet fs4"></span>
<span>Must include one letter</span>
</p>
<p class="prompt" data-bind="css: !emptyInput() ? (numberIncluded() ? 'green' : 'red') : ''">
<span data-bind="css: !emptyInput() ? (numberIncluded() ? 'ls-icon icn-check-sld-circle' : 'ls-icon icn-x-close-hvy-circle') : 'ls-icon icn-bullet fs4'" class="ls-icon icn-bullet fs4"></span>
<span>Must include one number</span>
</p>
<!-- <p class="prompt" data-bind="css: !emptyInput() ? (spaceIncluded() ? 'red' : 'green') : ''">
<span class="fa" data-bind="css: !emptyInput() ? (spaceIncluded() ? 'fa-times-circle' : 'fa-check-circle') : 'fa-circle'"></span>
<span>May not include spaces</span>
</p> -->
<span style="display:none;" class="ae-compliance-indent" id="ae-password-label"> - Minimum 8 characters Must include one letter Must include one number </span>
</div>
</div><!-- /ko -->
</div>
<!-- ko if: !register.isGSA() && !oldRegisterModal --><!-- /ko -->
<div class="row narrow">
<div class="form-group" data-bind="css: {'has-error': register.userShopForError()}">
<div class="row narrow">
<div class="col-sm-12">
<label class="required-field-label mb0" data-bind="text: register.shopForText, css: {'mb0': !$component.isMobileView()}" id="ae-register-modal-radio-label" role="presentation">I typically shop for:</label>
</div>
</div>
<div class="row narrow user-type" role="radiogroup" aria-required="true">
<label class="radio-control" role="presentation">
<input type="radio" name="userShopFor" data-bind="checked: register.userShopFor" value="classroom" automation-id="shop-for-class" aria-describedby="ae-register-labels-4">
<div class="radio-indicator"></div>
<span>Classroom/Organization</span>
</label>
<label class="radio-control" role="presentation">
<input type="radio" name="userShopFor" data-bind="checked: register.userShopFor" value="home" automation-id="shop-for-home" aria-describedby="ae-register-labels-4">
<div class="radio-indicator"></div>
<span>Home</span>
</label>
<label class="radio-control" role="presentation">
<input type="radio" name="userShopFor" data-bind="checked: register.userShopFor" value="all" automation-id="shop-for-both" aria-describedby="ae-register-labels-4">
<div class="radio-indicator"></div>
<span>Both</span>
</label>
</div>
<div class="help-block" data-bind="visible: register.userShopForError(), html: register.userShopForError()" id="ae-register-labels-4" style="display: none;"></div>
</div>
</div>
<!-- ko if: !register.isGSA() || oldRegisterModal -->
<div class="row narrow mt3">
<div class="form-group col-sm-12 accept-tc" data-bind="css: {'mb0': isReview}, visible: !register.isGSA() || oldRegisterModal">
<label class="accept-tc-label checkbox-control pl0" data-bind="css: {'mb0': isReview}" role="presentation">
<input type="checkbox" name="emailOptIn" data-bind="checked: register.emailOptIn" automation-id="emailOptIn" aria-required="true" aria-describedby="ae-register-labels-5">
<div class="radio-indicator"></div>
<span data-bind="html: register.emailOptInText">Yes, I would like to receive news and promotions via email.</span>
</label>
<div class="help-block red" data-bind="parsedHTML: $component.register.termsError(),
visible: $component.register.termsError()" id="ae-register-labels-5" style="display: none;"></div>
</div>
</div>
<!-- /ko -->
</div>
<div class="modal-footer pt0" data-bind="css: {'pt0': oldRegisterModal}">
<div class="row tight" data-bind="css: {'mb5': isReview, 'mb20':isSweepstakes}">
<!-- ko if: oldRegisterModal -->
<div class="col-sm-6 text-left pl0 mt15" data-bind="css: isMobileView() ? 'mb15 pl0':'pl0 mt15'">
<a id="privacy-link" class="fs13" href="/about/privacy-policy">See Privacy Policy</a>
</div>
<div class="col-sm-6 button-group">
<div class="logInButton text-left">
<!-- BEGIN BUTTON STYLE UPDATE -->
<div class="ll-btn-container align-left">
<button type="button" class="btn btn-sld-gray ll-btn-sm" data-dismiss="modal" aria-label="Cancel">Cancel</button>
</div>
<!-- END BUTTON STYLE UPDATE -->
</div>
<div class="logInButton text-right">
<!-- BEGIN BUTTON STYLE UPDATE -->
<div class="ll-btn-container align-left">
<button type="submit" data-bind="clickBubble: false" class="btn btn-sld-blue ll-btn-sm ss-user-type-flag" automation-id="register_button" data-ss-variation-applied="1">Register</button>
</div>
<!-- END BUTTON STYLE UPDATE -->
</div>
</div>
<!-- ko ifnot: (isReview && isSweepstakes) -->
<div class="col-xs-12 is-gsa-checkbox text-left pr0" data-bind="css: {'pr0': !isMobileView()}">
<label class="checkbox-control is-gsa-checkbox-label" data-bind="css: {'text-center': isMobileView()}" role="presentation">
<input type="checkbox" name="isGSA" data-bind="checked: register.isGSA">
<div class="radio-indicator"></div>
<span>I am a GSA member</span>
</label>
</div>
<!-- /ko -->
<!-- /ko -->
<!-- ko ifnot: oldRegisterModal --><!-- /ko -->
</div>
</div>
</div>
</div>
</form>
<form class="form" novalidate="novalidate">
<div class="modal-content">
<div class="modal-header">
<span class="close-icon" data-dismiss="modal" aria-label="Close" role="button" tabindex="0" data-ae-blurbtype="button"> </span>
<h4 class="modal-title" id="modal-password-label" data-bind="text: isB2BSetPassword() ? 'Set Password' : (resetPass() ? 'Reset Password' : 'Forgot Password?')" role="heading" aria-level="2">Forgot Password?</h4>
</div>
<div class="modal-body" id="passwordReset-area" data-bind="css: {'pt30 pb30': invalidB2BSetPassword() || resetPassCompleted()}">
<div class="compact-text-2 mb10" data-bind="visible: modalBodyText().length,
parsedHTML: modalBodyText(),
css: {'mb10': !invalidB2BSetPassword() && !resetPassCompleted()}">Enter your email address, and we’ll send a secure email with instructions for resetting your password.</div>
<!-- ko ifnot: invalidB2BSetPassword -->
<div class="row narrow" data-bind="visible: !resetPassCompleted()">
<!-- ko ifnot: inputName() === 'password' -->
<div class="form-group mb0" data-bind="css: {'has-error': formHasError}">
<label class="required-field-label" data-bind="text: inputLabel" role="presentation">Email</label>
<input class="form-control input-lg email-input" maxlength="64" aria-required="true" data-bind="attr: {'name': inputName(), 'type': inputType()}, 'automation-id': ('reset_pass_' + inputName()),
textInput: $component[inputName()], validateInput:'LtrNumCh6'" name="email" type="email" aria-label="E-Mail" aria-describedby="ae-password-error-message">
<div class="help-block" data-bind="visible: errorMessages()[inputName()], parsedHTML: errorMessages()[inputName()]" style="display: none;" id="ae-password-error-message"></div>
</div>
<!-- /ko -->
<!-- ko if: inputName() === 'password' --><!-- /ko -->
</div>
<!-- /ko -->
</div>
<div class="modal-footer pt5" data-bind="visible: !resetPassCompleted() && !invalidB2BSetPassword()">
<div class="row tight">
<div class="col-xs-12 button-group">
<div class="logInButton text-right">
<!-- BEGIN BUTTON STYLE UPDATE -->
<div class="ll-btn-container align-right">
<button type="button" class="btn btn-sld-gray ll-btn-sm" data-dismiss="modal" automation-id="reset_pass_cancel" aria-label="Cancel" data-bind="enable: !submitInProgress()">Cancel</button>
</div>
<!-- END BUTTON STYLE UPDATE -->
</div>
<div class="logInButton text-right">
<!-- BEGIN BUTTON STYLE UPDATE -->
<div class="ll-btn-container align-right">
<button type="submit" data-bind="clickBubble: false, click: submitRequest, enable: !submitInProgress()" class="btn btn-sld-blue ll-btn-sm" automation-id="reset_pass_button">Submit</button>
</div>
<!-- END BUTTON STYLE UPDATE -->
</div>
</div>
</div>
</div>
</div>
</form>
<form class="form">
<div class="modal-header" data-bind="style: { display: 'flex' }" style="display: flex;">
<span class="close-icon" tabindex="0" data-dismiss="modal" aria-label="Close" role="button" data-ae-blurbtype="button"> </span>
<h4 class="modal-title" id="store-locator-label" role="heading" aria-level="2">Find Another Store</h4>
</div>
<div class="modal-body pt15 pb0">
<div class="row">
<div class="col-md-12 col-xs-12">
<h2>Choose a Location</h2>
</div>
</div>
<!-- ko component: {
name: 'store-selector-content',
params: { parentType: 'modal' }
} -->
<div class="row pb20" data-bind="css:{'pt25': parentType==='popover'}">
<div class="col-xs-7 col-md-5 pr0">
<input type="text" class="form-control" placeholder="Enter Zip Code" aria-label="Enter Zip Code" name="store-selector" id="store-selector" data-bind="value: zipCode, validateInput:'NumCh9'" maxlength="10">
</div>
<div class="col-xs-5 col-md-3 serach-zip-submit">
<div class="ll-btn-container align-left inline">
<button class="btn btn-sld-blue ll-btn-sm inline-xs" aria-label="Search" type="submit" data-bind="click: $component.findStoresByZip">Search</button>
</div>
</div>
</div>
<div class="pb20" data-bind="visible: $component.errorMessages().length > 0" style="display: none;">
<!-- ko foreach: $component.errorMessages --><!-- /ko -->
</div>
<!-- BEGIN SEARCH RESULTS -->
<div class="storeSelectModal mr-20" data-bind="visible: showStoresSection, css: {'mr-20': $component.parentType === 'modal'}" style="display: none;">
<!-- ko foreach: stores --><!-- /ko -->
</div>
<!-- END SERACH RESULTS --><!-- /ko -->
</div>
</form>
Text Content
Skip to main content This website is AudioEye enabled and is being optimized for accessibility. To open the AudioEye Toolbar, press "shift + =". Some assistive technologies may require the use of a passthrough function before this keystroke. For more information, activate the button labeled “Explore your accessibility options”. ll si5 1.230510.1.54 1 green Bots Only Get $5 off! Join Lakeshore Rewards to save on your next purchase! See details. Lakeshore Home Page Logo * Sign Out * 0 Cart Get $5 off! Join Lakeshore Rewards to save on your next purchase! See details. * Find Your Store * Stores * Free Resources * Services * Registries & Lists * Gift Cards * Quick Order Lakeshore Home Page Logo Search: To navigate through search suggestions, begin typing then use down and up arrow keys. Search * Account * 0 Cart * Shop All Shop All Active Play Active Play * Shop All * Balance & Coordination * Sports & Ball Activities * Trikes & Accessories Arts & Crafts Arts & Crafts * Shop All * Craft Kits * Collage & Craft Materials * Paint & Painting Accessories * Art Easels & Drying Racks * Paper * Crayons & Colored Pencils * Stamps & Markers * Dough & Modeling Materials * Glue, Tape & Adhesives * Scissors & Punches * Drawing & Activity Books Blocks & Manipulatives Blocks & Manipulatives * Shop All * Fine Motor Development * Building Sets * Unit Blocks & Accessories * Light Tables & Accessories Books Books * Shop All * Read-Alongs * Paperback Books * Hardcover Books * Board Books * Big Books * Workbooks * Book Storage Classroom Decorations Classroom Decorations * Shop All * Borders * Accents * Bulletin Board Sets * Punch-Out Letters & Numbers * Posters & Charts * Bulletin Board Paper Classroom Furniture Classroom Furniture * Shop All * Classroom Carpets & Rugs * Storage Units * Storage Bins & Organizers * Chairs & Seating * Tables & Desks * Teaching Easels * Rest Mats & Cots * Cribs & Changing Tables * Room Dividers & Connecting Panels * Dramatic Play Furniture * Furniture Sets * Infant & Toddler Instant Learning Spaces * Preschool Instant Learning Spaces Dramatic Play Dramatic Play * Shop All * Play Furniture * Kitchen & House Play * Dress-Up & Role Play * Dolls & Accessories * Puppets * Cars, Trucks & Trains * Animal Playsets Games Games * Shop All * Board & Dice Games * File Folder Games * Bingo Games * Card Games * Fine Motor Games * Logic Games * Outdoor Games Infants & Toddlers Infants & Toddlers * Shop All * Furniture * Fine Motor Skills * Gross Motor Skills * Sensory Development * Cognitive Development * Social-Emotional Development * Books & Language Development * Music * Art * Instant Learning Spaces Language Language * Shop All * Oral Language & Storytelling * Alphabet * Phonemic & Phonological Awareness * Phonics & Word Building * Sight-Words * Vocabulary * Reading Comprehension & Fluency * Writing & Grammar * Spanish & ELL Materials * Multiskill Language Products Math Math * Shop All * Math Manipulatives * Numbers & Counting * Sorting & Patterning * Shapes & Geometry * Basic Operations * Measurement & Data * Time * Money * Place Value * Fractions, Decimals & Percents * Multiskill Math Products Music Music * Shop All * Musical Instruments * Music CDs * Audio Equipment & Listening Centers Puzzles Puzzles * Shop All * Wooden Puzzles * Floor Puzzles Sand & Water Sand & Water * Shop All * Sand & Water Play * Sand & Water Tables Science Science * Shop All * Life Science * Physical Science * Earth & Space Science * Science Tools & Equipment * Health & Nutrition * Multiskill Science Products Sensory Exploration Sensory Exploration * Shop All * Sensory Play * Sensory Tables * Light Tables & Accessories Social Studies Social Studies * Shop All * Social-Emotional & Character Development * Cultures & the Community * History & Geography STEM STEM * Shop All * Building & Engineering * Labs & Activities Teaching Resources Teaching Resources * Shop All * Classroom Essentials * Bins & Organizers * Classroom Equipment * Pocket Charts & Accessories * Dry-Erase Boards, Markers & Erasers * Nameplates & Name Tags * Lesson Plan & Record Books * Awards & Incentives * Stickers * Curriculum Support Kits Shop By Category * Active Play * Arts & Crafts * Blocks & Manipulatives * Books * Classroom Decorations * Classroom Furniture * Dramatic Play * Games * Infants & Toddlers * Language * Math * Music * Puzzles * Sand & Water * Science * Sensory Exploration * Social Studies * STEM * Teaching Resources * Shop By Age Shop By Age * 0-18 Months * 18-36 Months * 3 Years * 4 Years * 5 Years * 6 Years * 7 Years * 8 Years * 9 Years * 10 Years * 11 Years & Up * Furniture Furniture * Shop All * Shop By Furniture Lines * Classroom Carpets & Rugs * Storage Units * Storage Bins & Organizers * Chairs & Seating * Tables & Desks * Teaching Easels * Rest Mats & Cots * Cribs & Changing Tables * Room Dividers & Connecting Panels * Dramatic Play Furniture * Furniture Sets * Infant & Toddler Instant Learning Spaces * Preschool Instant Learning Spaces * Flex-Space Flex-Space Jr.® Classic Birch Heavy-Duty Kids Colors™ Just Like Home® First Steps® Outdoor * Learn Learn * Language Language * Shop All * Oral Language & Storytelling * Alphabet * Phonemic & Phonological Awareness * Phonics & Word Building * Sight-Words * Vocabulary * Reading Comprehension & Fluency * Writing & Grammar * Spanish & ELL Materials * Multiskill Language Products * * Books Books * Shop All * Read-Alongs * Paperback Books * Hardcover Books * Board Books * Big Books * Workbooks * Book Storage * * Math Math * Shop All * Math Manipulatives * Numbers & Counting * Sorting & Patterning * Shapes & Geometry * Basic Operations * Measurement & Data * Time * Money * Place Value * Fractions, Decimals & Percents * Multiskill Math Products * * Social Studies Social Studies * Shop All * Social-Emotional & Character Development * Cultures & the Community * History & Geography * * Science Science * Shop All * Life Science * Physical Science * Earth & Space Science * Science Tools & Equipment * Health & Nutrition * Multiskill Science Products * * STEM STEM * Shop All * Building & Engineering * Labs & Activities * * Play Play * Dramatic Play Dramatic Play * Shop All * Play Furniture * Kitchen & House Play * Dress-Up & Role Play * Dolls & Accessories * Puppets * Cars, Trucks & Trains * Animal Playsets * * Games Games * Shop All * Board & Dice Games * File Folder Games * Bingo Games * Card Games * Fine Motor Games * Logic Games * Outdoor Games * * Blocks & Manipulatives Blocks & Manipulatives * Shop All * Fine Motor Development * Building Sets * Unit Blocks & Accessories * Light Tables & Accessories * * Puzzles Puzzles * Shop All * Wooden Puzzles * Floor Puzzles * * Music Music * Shop All * Musical Instruments * Music CDs * Audio Equipment & Listening Centers * * Active Play Active Play * Shop All * Balance & Coordination * Sports & Ball Activities * Trikes & Accessories * * Sand & Water Sand & Water * Shop All * Sand & Water Play * Sand & Water Tables * * Sensory Exploration Sensory Exploration * Shop All * Sensory Play * Sensory Tables * Light Tables & Accessories * * Arts & Crafts Arts & Crafts * Shop All * Craft Kits * Collage & Craft Materials * Paint & Painting Accessories * Art Easels & Drying Racks * Paper * Crayons & Colored Pencils * Stamps & Markers * Dough & Modeling Materials * Glue, Tape & Adhesives * Scissors & Punches * Drawing & Activity Books * * Teaching Supplies Teaching Supplies * Teaching Resources Teaching Resources * Shop All * Classroom Essentials * Bins & Organizers * Classroom Equipment * Pocket Charts & Accessories * Dry-Erase Boards, Markers & Erasers * Nameplates & Name Tags * Lesson Plan & Record Books * Awards & Incentives * Stickers * Curriculum Support Kits * * Classroom Decorations Classroom Decorations * Shop All * Borders * Accents * Bulletin Board Sets * Punch-Out Letters & Numbers * Posters & Charts * Bulletin Board Paper * Top Decor Collections * Featured Featured Featured Assortments * Decor & More * Gifts for Growing Minds * Five-Star Favorites * After School & Summer Programs * Diversity & Inclusion * Flexible Seating * Learning Recovery & Intervention * Outdoor Learning * Social-Emotional Development Featured Programs * Early Head Start & Head Start * Family Child Care * Expanded Learning * Special Needs * Sale * View My Orders * Registries & Lists * Stores * Free Resources * Services * Gift Cards * Accessible Menu - Main * Shop All * Shop by Age * Furniture * Learn * Play * Arts & Crafts * Teaching Supplies * Featured * Sale PREFERENCE CENTER EMAIL PREFERENCES georgestorck@gmail.comis unsubscribed. We’ve updated the email preferences for georgestorck@gmail.com. Unsubscribe Zip Code I typically shop for: Classroom/Organization Home Both Email Frequency All emails 1 email per week Unsubscribe Update MOBILE PREFERENCES is subscribed to receive text/SMS offers. Just one more step. Please follow the text prompts on your mobile device to continue the opt-in process. Text STOP to 53276 to cancel. Text HELP to 53276 for help. See our Mobile Terms | Unsubscribe MAIL PREFERENCES Change my mailing address. Remove me from your mailing list. See Privacy Policy Fields in bold are required. OLD ADDRESS First Name Last Name Address 1 Address 2 Zip/Postal Code City State SelectAlabamaAlaskaArizonaArkansasCaliforniaColoradoConnecticutDelawareDistrict of ColumbiaFloridaGeorgiaHawaiiIdahoIllinoisIndianaIowaKansasKentuckyLouisianaMaineMarylandMassachusettsMichiganMinnesotaMississippiMissouriMontanaNebraskaNevadaNew HampshireNew JerseyNew MexicoNew YorkNorth CarolinaNorth DakotaOhioOklahomaOregonPennsylvaniaRhode IslandSouth CarolinaSouth DakotaTennesseeTexasUtahVermontVirginiaWashingtonWest VirginiaWisconsinWyoming ----------------------U.S. Armed Forces – AmericasU.S. Armed Forces – EuropeU.S. Armed Forces – Pacific ----------------------American SamoaGuamNorthern Mariana IslandsPuerto RicoU.S. Minor Outlying IslandsU.S. Virgin Islands Email NEW ADDRESS First Name Last Name Address 1 Address 2 Zip/Postal Code City State SelectAlabamaAlaskaArizonaArkansasCaliforniaColoradoConnecticutDelawareDistrict of ColumbiaFloridaGeorgiaHawaiiIdahoIllinoisIndianaIowaKansasKentuckyLouisianaMaineMarylandMassachusettsMichiganMinnesotaMississippiMissouriMontanaNebraskaNevadaNew HampshireNew JerseyNew MexicoNew YorkNorth CarolinaNorth DakotaOhioOklahomaOregonPennsylvaniaRhode IslandSouth CarolinaSouth DakotaTennesseeTexasUtahVermontVirginiaWashingtonWest VirginiaWisconsinWyoming ----------------------U.S. Armed Forces – AmericasU.S. Armed Forces – EuropeU.S. Armed Forces – Pacific ----------------------American SamoaGuamNorthern Mariana IslandsPuerto RicoU.S. Minor Outlying IslandsU.S. Virgin Islands Update Please remove me from the following lists: Early Childhood Elementary Gifts for Growing Minds Promotional Flyer Fields in bold are required. First Name Last Name Address 1 Address 2 Zip/Postal Code City State SelectAlabamaAlaskaArizonaArkansasCaliforniaColoradoConnecticutDelawareDistrict of ColumbiaFloridaGeorgiaHawaiiIdahoIllinoisIndianaIowaKansasKentuckyLouisianaMaineMarylandMassachusettsMichiganMinnesotaMississippiMissouriMontanaNebraskaNevadaNew HampshireNew JerseyNew MexicoNew YorkNorth CarolinaNorth DakotaOhioOklahomaOregonPennsylvaniaRhode IslandSouth CarolinaSouth DakotaTennesseeTexasUtahVermontVirginiaWashingtonWest VirginiaWisconsinWyoming ----------------------U.S. Armed Forces – AmericasU.S. Armed Forces – EuropeU.S. Armed Forces – Pacific ----------------------American SamoaGuamNorthern Mariana IslandsPuerto RicoU.S. Minor Outlying IslandsU.S. Virgin Islands Email Remove MOBILE PREFERENCES You have requested to stop receiving offers from Lakeshore. Are you sure you want to unsubscribe? See our Mobile Terms Unsubscribe Stay Subscribed Customer Support * Live Chat (Offline) * Contact Us * Track My Order * Shipping * Returns and Exchanges * FAQs * Lakeshore Catalogs * Credit Application * Gift Cards * Mail Preferences * Product Safety * Feedback * eProcurement Sign-In * GSA Sign-Up & Sign-In * Accessibility Our Company * Careers * Our Story * CA Supply Chains Act * Partnerships * Lakeshore Warranties Stay Connected Sign up for special offers and news sent directly to you. enter your email address Join Sign up for exclusive text offers and deals. See Privacy Policy Get the App Scan the QR code to download our app. * *View promotion details promotion details. Privacy Policy | Children’s Policy | Do Not Sell My Personal Information | Do Not Share My Personal Information/Interest Based Ads ©2023 Lakeshore Learning Materials. All rights reserved. SIGN IN Email Password Sign In Cancel Find a Shopping List Don’t have an account? Register now. Forgot Password? B2B REDIRECT WRITE A REVIEW We’re sorry, but this item is no longer available. THANK YOU Your opinion matters to us, and we really appreciate you taking the time to let us know how we’re doing. Close ACCESS TO DESIGN RESOURCES Oops. You do not have access to the Design Resources page. Please click here to request access to request access. Close REVIT ACCESS We're sorry! There was an error with the download. Please try again. Close INVALID REGISTRY We’re sorry! The registry you’re trying to view is no longer available. Close SESSION EXPIRED Continue REGISTER First Name Last Name Email Password Minimum 8 characters Must include one letter Must include one number - Minimum 8 characters Must include one letter Must include one number I typically shop for: Classroom/Organization Home Both Yes, I would like to receive news and promotions via email. See Privacy Policy Cancel Register I am a GSA member THANK YOU FOR REGISTERING WITH LAKESHORE! GSA MEMBERSHIP Forgot Password? FORGOT PASSWORD? Enter your email address, and we’ll send a secure email with instructions for resetting your password. Email Cancel Submit FIND ANOTHER STORE CHOOSE A LOCATION Search Opt out of Targeted Advertising OPT OUT OF TARGETED ADVERTISING When you visit our website, we store cookies on your browser to collect information. The information collected might relate to you, your preferences or your device, and is mostly used to make the site work as you expect it to and to provide a more personalized web experience. However, you can choose not to allow certain types of cookies, which may impact your experience of the site and the services we are able to offer. Click on the different category headings to find out more and change our default settings according to your preference. You cannot opt-out of our First Party Strictly Necessary Cookies as they are deployed in order to ensure the proper functioning of our website (such as prompting the cookie banner and remembering your settings, to log into your account, to redirect you when you log out, etc.). For more information about the First and Third Party Cookies used please follow this link. More information Allow All MANAGE CONSENT PREFERENCES Accordion Header STRICTLY NECESSARY COOKIES Always Active These cookies are necessary for the website to function and cannot be switched off in our systems. They are usually only set in response to actions made by you which amount to a request for services, such as setting your privacy preferences, logging in or filling in forms. You can set your browser to block or alert you about these cookies, but some parts of the site will not then work. These cookies do not store any personally identifiable information. Accordion Header TARGETING COOKIES Targeting Cookies These cookies may be set through our site by our advertising partners. They may be used by those companies to build a profile of your interests and show you relevant adverts on other sites. They do not store directly personal information, but are based on uniquely identifying your browser and internet device. If you do not allow these cookies, you will experience less targeted advertising. Back Button PERFORMANCE COOKIES Search Icon Filter Icon Clear checkbox label label Apply Cancel Consent Leg.Interest checkbox label label checkbox label label checkbox label label Confirm My Choices Opens in new window PDF Download Word Download Excel Download PowerPoint Download Document Download Explore your accessibility options close carousel Change Country Afghanistan Åland Albania Algeria American Samoa Andorra Angola Anguilla Antarctica Antigua and Barbuda Argentina Armenia Aruba Australia Austria Azerbaijan Bahamas Bahrain Bangladesh Barbados Belarus Belgium Belize Benin Bermuda Bhutan Bolivia Bonaire, Sint Eustatius and Saba Bosnia and Herzegovina Botswana Bouvet Island Brazil British Indian Ocean Territory British Virgin Islands Brunei Bulgaria Burkina Faso Burma Burundi Cambodia Cameroon Canada Cape Verde Cayman Islands Central African Republic Chad Chile China Christmas Island Cocos (Keeling) Islands Colombia Comoros Congo Congo (Democratic Republic) Cook Islands Costa Rica Croatia Cuba Curaçao Cyprus Czechia Denmark Djibouti Dominica Dominican Republic East Timor Ecuador Egypt El Salvador Equatorial Guinea Eritrea Estonia Eswatini Ethiopia Falkland Islands Faroe Islands Fiji Finland France French Guiana French Polynesia French Southern Territories Gabon Gambia Georgia Germany Ghana Gibraltar Greece Greenland Grenada Guadeloupe Guam Guatemala Guernsey Guinea Guinea-Bissau Guyana Haiti Heard Island and McDonald Islands Honduras Hong Kong Hungary Iceland India Indonesia Iran Iraq Ireland Isle of Man Israel Italy Ivory Coast Jamaica Japan Jersey Jordan Kazakhstan Kenya Kiribati Korea (North) Korea (South) Kuwait Kyrgyzstan Laos Latvia Lebanon Lesotho Liberia Libya Liechtenstein Lithuania Luxembourg Macao Macedonia Madagascar Malawi Malaysia Maldives Mali Malta Marshall Islands Martinique Mauritania Mauritius Mayotte Mexico Micronesia Moldova Monaco Mongolia Montenegro Montserrat Morocco Mozambique Namibia Nauru Nepal Netherlands New Caledonia New Zealand Nicaragua Niger Nigeria Niue Norfolk Island Northern Mariana Islands Norway Oman Pakistan Palau Palestine Panama Papua New Guinea Paraguay Peru Philippines Pitcairn Poland Portugal Puerto Rico Qatar Réunion Romania Russia Rwanda Saint Martin (French) Samoa San Marino Sao Tome and Principe Saudi Arabia Senegal Serbia Seychelles Sierra Leone Singapore Sint Maarten (Dutch) Slovakia Slovenia Solomon Islands Somalia South Africa South Georgia and the South Sandwich Islands South Sudan Spain Sri Lanka St Barthélemy St Helena, Ascension and Tristan da Cunha St Kitts and Nevis St Lucia St Pierre and Miquelon St Vincent Sudan Suriname Svalbard and Jan Mayen Sweden Switzerland Syria Taiwan Tajikistan Tanzania Thailand Togo Tokelau Tonga Trinidad and Tobago Tunisia Turkey Turkmenistan Turks and Caicos Islands Tuvalu Uganda Ukraine United Arab Emirates United Kingdom United States United States Minor Outlying Islands United States Virgin Islands Uruguay Uzbekistan Vanuatu Vatican City Venezuela Vietnam Wallis and Futuna Western Sahara Yemen Zambia Zimbabwe Change Country Change Country Afghanistan Åland Albania Algeria American Samoa Andorra Angola Anguilla Antarctica Antigua and Barbuda Argentina Armenia Aruba Australia Austria Azerbaijan Bahamas Bahrain Bangladesh Barbados Belarus Belgium Belize Benin Bermuda Bhutan Bolivia Bonaire, Sint Eustatius and Saba Bosnia and Herzegovina Botswana Bouvet Island Brazil British Indian Ocean Territory British Virgin Islands Brunei Bulgaria Burkina Faso Burma Burundi Cambodia Cameroon Canada Cape Verde Cayman Islands Central African Republic Chad Chile China Christmas Island Cocos (Keeling) Islands Colombia Comoros Congo Congo (Democratic Republic) Cook Islands Costa Rica Croatia Cuba Curaçao Cyprus Czechia Denmark Djibouti Dominica Dominican Republic East Timor Ecuador Egypt El Salvador Equatorial Guinea Eritrea Estonia Eswatini Ethiopia Falkland Islands Faroe Islands Fiji Finland France French Guiana French Polynesia French Southern Territories Gabon Gambia Georgia Germany Ghana Gibraltar Greece Greenland Grenada Guadeloupe Guam Guatemala Guernsey Guinea Guinea-Bissau Guyana Haiti Heard Island and McDonald Islands Honduras Hong Kong Hungary Iceland India Indonesia Iran Iraq Ireland Isle of Man Israel Italy Ivory Coast Jamaica Japan Jersey Jordan Kazakhstan Kenya Kiribati Korea (North) Korea (South) Kuwait Kyrgyzstan Laos Latvia Lebanon Lesotho Liberia Libya Liechtenstein Lithuania Luxembourg Macao Macedonia Madagascar Malawi Malaysia Maldives Mali Malta Marshall Islands Martinique Mauritania Mauritius Mayotte Mexico Micronesia Moldova Monaco Mongolia Montenegro Montserrat Morocco Mozambique Namibia Nauru Nepal Netherlands New Caledonia New Zealand Nicaragua Niger Nigeria Niue Norfolk Island Northern Mariana Islands Norway Oman Pakistan Palau Palestine Panama Papua New Guinea Paraguay Peru Philippines Pitcairn Poland Portugal Puerto Rico Qatar Réunion Romania Russia Rwanda Saint Martin (French) Samoa San Marino Sao Tome and Principe Saudi Arabia Senegal Serbia Seychelles Sierra Leone Singapore Sint Maarten (Dutch) Slovakia Slovenia Solomon Islands Somalia South Africa South Georgia and the South Sandwich Islands South Sudan Spain Sri Lanka St Barthélemy St Helena, Ascension and Tristan da Cunha St Kitts and Nevis St Lucia St Pierre and Miquelon St Vincent Sudan Suriname Svalbard and Jan Mayen Sweden Switzerland Syria Taiwan Tajikistan Tanzania Thailand Togo Tokelau Tonga Trinidad and Tobago Tunisia Turkey Turkmenistan Turks and Caicos Islands Tuvalu Uganda Ukraine United Arab Emirates United Kingdom United States United States Minor Outlying Islands United States Virgin Islands Uruguay Uzbekistan Vanuatu Vatican City Venezuela Vietnam Wallis and Futuna Western Sahara Yemen Zambia Zimbabwe Change Country