var bjax_base_url = "/bajax.aspx"; var bjax_base_cart_url = "/ajax/cartjax.aspx"; var bjax_base_cart_pop_url = "/ajax/cart.aspx"; var bjax_base_img = "http://www.babyage.com/"; var bjax_base_prds = "icons/localhost/products/"; var bjax_base_brnd = "icons/localhost/brands_small/"; var products_per_row = 4; var disable_back_button_parametric = false; var _hold_list = false; var popup_has_loaded = false; var _calculate_position = false; var is_parametric = false; var selected_brands = new Hash(); document.observe("bajax:popupload", place_popup); document.observe("bajax:parametricload", function(event) { }); var arrow_positions = {
'center': 0,
'up_left': 1,
'down_left': 2,
'up_right': 3,
'down_right': 4
}; var bjax_list_action; var bjax_list_ppp = 20; var bjax_list_cp = 1; var bjax_list_pages = 1; var bjax_list_arr = new Hash(); bjax_list_arr.set("brnd", []); bjax_list_arr.set("cat", []); bjax_list_arr.set("list", []); bjax_list_arr.set("var", []); bjax_list_arr.set("pricetype", []); var bjax_list_arr_o = new Hash(); bjax_list_arr_o.set("brnd", []); bjax_list_arr_o.set("cat", []); bjax_list_arr_o.set("list", []); bjax_list_arr_o.set("superbrand", []); bjax_list_arr_o.set("superlist", []); var bjax_list_min = ""; var bjax_list_max = ""; var bjax_list_srt = 0; var bjax_last_data; var bjax_list_type = "cube"; var bjax_list_direction = 'down'; var bjax_list_search_term = ""; var bjax_vars_arr = []; var bjax_vars_curr; var _ignore_update_back_button_fix = false; function build_fetch_parameters() {
return {
action: bjax_list_action,
p: bjax_list_cp,
pp: bjax_list_ppp,
b: bjax_list_arr.get("brnd").join(','),
c: bjax_list_arr.get("cat").join(','),
l: bjax_list_arr.get("list").join(','),
v: bjax_list_arr.get("var").join(','),
ob: bjax_list_arr_o.get("brnd").join(','),
oc: bjax_list_arr_o.get("cat").join(','),
ol: bjax_list_arr_o.get("list").join(','),
osb: bjax_list_arr_o.get("superbrand").join(','),
osl: bjax_list_arr_o.get("superlist").join(','),
pt: bjax_list_arr.get("pricetype").join(','),
min: bjax_list_min,
max: bjax_list_max,
srt: bjax_list_srt,
Query: bjax_list_search_term
}; }
function bjax_fetch() {
if (_hold_list) { return; }
RemoveSwatchPopup(null); _click_obj = $$('body img')[0]; $('divpop').update(get_loading_contents()); _calculate_position = false; place_popup(); var params = build_fetch_parameters(); new Ajax.CachedRequest(
bjax_base_url,
{
method: 'post',
onSuccess: function(trns) {
if (Object.isUndefined(trns.responseText)) {
bjax_prs(trns.evalJSON()); }
else {
TrackAjax(document.location.href + "?" + Object.toQueryString(params).replace(/%2C/g, ',').replace(/'/g, "%27")); bjax_prs(trns.responseText.evalJSON()); }
},
parameters: params
}
); }
function get_loading_contents() {
return '<div style="text-align: center; width: 180px; opacity: 0.9; padding: 10px; border: 1px solid #948C81; background: #F1E9D7; font-size: 12px; font-weight: bold;"><img src="/icons/ba/popup/popup_loading.gif" alt="" /><br /><br />Loading...</div>'; }
function bjax_list() {
var f = build_fetch_parameters(); if (!window.dhtmlHistory.isSupported || disable_back_button_parametric || window.dhtmlHistory.listener == null) {
yourListener(Object.toQueryString(f).replace(/%2C/g, ',').replace(/'/g, '%27'), null); }
else {
document.location.href = document.location.href.replace(/#(.*)$/, '') + '#' + Object.toQueryString(f).replace(/%2C/g, ',').replace(/'/g, "%27"); }
}
function bjax_prs(resp) {
HideDivPop(); if (!resp.prods || resp.prods.length == 0) {
alert('Unforunately, there were no items matching your search criteria.'); return; }
bjax_last_data = resp; bjx_last_page = 1; bjax_rewrt(); }
function bjax_rewrt() {
HideDivPop(); if (bjax_last_data == null) {
bjax_list(); return; }
var tbl = $('tblProducts'); tbl.update(''); bjax_list_pages = bjax_last_data.pages; bjax_list_cp = bjax_last_data.page; bjx_sldp_reset(); tupdate('spn_pages', bjax_list_pages); tupdate('spn_page', bjax_list_cp); tupdate('spn_pages_2', bjax_list_pages); tupdate('spn_page_2', bjax_list_cp); bjx_show(bjax_last_data, tbl); $("divprods").show(); bjax_list_direction = ''; FixPNGs(null); }
function tupdate(obj, val) {
if ($(obj) != null) {
$(obj).update(val); }
}
var current_item = 0; var current_loop = null; var current_tr = null; var current_table = null; function ShowProduct() {
i = current_item; count = (i % products_per_row); tr = current_tr; tbl = current_table; if (current_item >= current_loop.length) {
if (bjax_list_type != "flat") {
var td = tr.insertCell(tr.cells.length); td = $(td); td.className = 'prd' + bjax_list_type + (bjax_list_type == "flat" ? " prdflat-row" : " prd" + bjax_list_type + "-" + (i % products_per_row)); td.update("&nbsp;"); current_item++; }
return; }
else {
if (count == 0 || bjax_list_type != "cube") {
tr = tbl.insertRow(tbl.rows.length); }
prd = current_loop[i]; var className = 'prd' + bjax_list_type; if (bjax_list_type == 'flat') {
className += ' prdflat-row'; }
else {
if (prd.lifestyle != '') {
className += ' prd-cube-' + prd.lifestyle.toLowerCase(); }
if (!!prd.personalizable) {
className += ' prd-cube-personalize'; }
}
className += ' prd' + bjax_list_type + '-' + (i % products_per_row); bjx_addtd(tr, prd, className).update(bjx_prd_data(prd, i, (products_per_row == 3)).innerHTML); current_tr = tr; }
current_item++; }
function ShowProductRow() {
for (var i = 0; i < products_per_row; i++) {
ShowProduct(); }
if (current_item < current_loop.length) {
setTimeout('ShowProductRow()', 1); }
}
function bjx_show(data, tbl) {
var count = 0; var tr; var i = 0; current_item = 0; current_loop = data.prods; current_table = tbl; ShowProductRow(); bjx_sel_reselect('cat', data.ct, 'li'); bjx_sel_reselect('brnd', data.br, 'li'); if (data.vr) data.ct = data.ct.concat(data.vr); bjx_sel_reselect('var', data.ct, 'li'); bjx_sel_reselect('pricetype', data.pt, 'li'); bjx_sel_reselect('var', data.vr, 'td'); }
function bjx_sel_reselect(ident, arr, element) {
$$('.css_ident_' + ident).each(
function(ul) {
if (ul.select('.selected').length == 0) {
ul.select(element).each(function(td) {
if (arr && arr.indexOf(parseInt(td.id.replace(/[^0-9]/g, ''))) > -1) {
td.removeClassName('dsbl'); td.down('a').title = td.down('a').title.replace(/ not available\./ig, ''); }
else {
td.addClassName('dsbl'); td.down('a').title = td.down('a').title.replace(/ not available\./ig, '') + ' not available.'; td.removeClassName('selected'); }
}); }
}
); }
function bjx_addtd(tr, prd, css, csso) {
var td = tr.insertCell(tr.cells.length); td = $(td); td.className = css; return td; }
function RemoveSwatchPopup(event) {
if (event != null) {
event.stop(); var el = event.element(); if (el.match('#swpop *') ||
el.match('#swpop') ||
el.match("#divpop *") ||
el.match("#divpop") ||
el.match(".BrownBoxNormal") ||
el.match("#popup_arrow")) {
return; }
}
while ($('popup_arrow') != null) {
$('popup_arrow').remove(); }
$$('#swpop').each(function(i) { i.remove(); }); Event.stopObserving(document, 'mouseover', RemoveSwatchPopup); }
function SwatchPopup(obj, id, i) {
RemoveSwatchPopup(null); new Ajax.CachedRequest(
'/swatch_popup.aspx?id=' + id,
{
onSuccess: function(trns) {
var text = ''; if (Object.isUndefined(trns.responseText)) {
text = trns; }
else {
text = trns.responseText; }
var div = null; if ($('swpop') != null) {
div = $('swpop'); }
else {
div = Builder.node('div', { id: 'swpop' },
[
Builder.node('div',
[
Builder.node('img', { src: '/icons/ba/prodpage/swatch_popup_top.png', alt: '' })
]),
Builder.node('div', { className: 'swatch_popup_middle' }, ''),
Builder.node('div',
[
Builder.node('img', { src: '/icons/ba/prodpage/swatch_popup_bottom.png', alt: '' })
])
]
); $$('body')[0].appendChild(div); }
div = $(div); div.down('.swatch_popup_middle').update(text.replace(/id="[^"]+"/ig, '')); if (div.down('.BrownBoxNormal') != null) {
div.down('.BrownBoxNormal').onmouseover = function(e) { }; }
if (div.down('a.prd-quickinfo-link') != null) {
div.down('a.prd-quickinfo-link').onclick = function(e) { }; div.down('a.prd-quickinfo-link').href = div.down('.product-cube-product-link').down('a').href; if (div.down('a.prd-quickinfo-link').down('.freeshippingiconinfo') != null) {
div.down('a.prd-quickinfo-link').down('.freeshippingiconinfo').removeClassName('freeshippingiconinfo'); }
}
if (div.down('.prdcube') != null) {
div.down('.prdcube').removeClassName('prdcube-0').addClassName('prdcube-' + (i % products_per_row)); }
div.clonePosition($(obj).up("td"), { setHeight: false, offsetTop: -8, offsetLeft: -8 }); Event.observe(document, 'mouseover', RemoveSwatchPopup); },
onFailure: function(e) {
div.remove(); }
}); }
function BuildBrownBox(prd, showswatchesforcubes, i, iscube) {
var ret = { fields: {}, text: '', other: null }; var perc = 0.00; if ((0.95 * prd.msp) > prd.min_price) {
perc = (prd.msp - prd.min_price) / prd.msp; }
if (!!prd.personalizable)
{
ret.text = 'Personalized Item'; ret.fields = { className: 'BrownBoxNormal' }; return ret; }
if (prd.opts != '') {
if (iscube) {
ret.text = prd.opts; if (true || showswatchesforcubes) {
ret.fields = { className: 'BrownBoxNormal' }; }
else {
ret.fields = { className: 'BrownBoxNormal', onmouseover: 'SwatchPopup(this, ' + prd.id + ', ' + i + ');', style: 'cursor: pointer;' }; }
}
else {
ret.fields = { className: 'swatch_popup' }; for (var n = 0; n < Math.min(5, prd.swatch.length); n++) {
if (support_product_popups) {
ret.text += "<a href=\"" + prd.swatch[n].url + "\" onclick=\"bjx_prd(this, " + prd.swatch[n].id + " , 'var_'); return false;\" target=\"_new\"><img src=\"" + bjax_base_img + bjax_base_prds + "small/" + prd.swatch[n].img + "\" style=\"cursor: pointer\" alt=\"\" /></a>"; } else {
ret.text += "<a href=\"/products" + prd.swatch[n].url.replace(/\/small\//, '/') + "\" target=\"_new\"><img src=\"" + bjax_base_img + bjax_base_prds + "small/" + prd.swatch[n].img + "\" style=\"cursor: pointer\" alt=\"\" /></a>"; }
}
}
return ret; }
if (perc > 0) {
ret.text = "On Sale - Save Over " + (Math.floor(Math.floor(perc * 100) / 5.00) * 5) + "%"; ret.fields = { className: 'BrownBoxSale' }; return ret; }
if (prd.avg > 1) {
ret.text = 'Best Seller!'; ret.fields = { className: 'BrownBoxBestSeller' }; return ret; }
ret.text = '&nbsp;'; ret.fields = { className: 'BrownBoxEmpty' }; return ret; }
function PriceFormatting(prd) {
if (prd.min_price != prd.max_price) {
return '$' + prd.min_price.toFixed(2) + ' - ' + '$' + prd.max_price.toFixed(2); }
else {
return '$' + prd.min_price.toFixed(2); }
}
function BuildShipText(prd) {
var ret = { fields: {}, text: '' }; if (!!!prd.Buyable) {
ret.text = 'Currently Out of Stock'; ret.fields = { className: 'outofstock' }; }
else {
ret.text = prd.shipText; ret.fields = { className: 'special-red' }; }
return ret; }
function BuildYouSave(prd) {
if ((0.95 * prd.msp) > prd.min_price) {
return 'Original Price: $' + prd.msp.toFixed(2); }
else {
return 'BabyAge Low Price!'; }
}
function bjx_prd_data(prd, i, showswatchesforcubes) {
var htm = null; if (bjax_list_action == "GetProduct" || bjax_list_action == "GetSearch") {
if (bjax_list_type == "cube") {
var brown = BuildBrownBox(prd, showswatchesforcubes, i, true); var ship = BuildShipText(prd); htm = Builder.node('div', { style: 'position: relative;' },
[
Builder.node('a', { className: 'prd-quickinfo-link', href: (support_product_popups ? prd.pop_url : prd.url), onclick: (support_product_popups ? 'bjx_prd(this, ' + prd.id + '); return false;' : '') },
[
Builder.node('img', { src: (products_per_row == 3 ? bjax_base_img + bjax_base_prds + "medium/" + prd.image : bjax_base_img + bjax_base_prds + "small/" + prd.icon) }),
Builder.node('img', { className: 'freeshippingiconinfo', src: '/icons/ba/prodpage/freeshippingoverlay.png', style: (prd.freeshipping ? '' : 'display: none') })
]),
Builder.node('div', { className: 'product-cube-product-link' },
[
Builder.node('a', { style: 'display: block', href: prd.url }, prd.name)
]),
$(Builder.node('span', brown.fields, brown.text || '')).update(brown.text),
Builder.node('div', { className: 'product-cube-blue-price-box' },
[
Builder.node('div', { className: 'product-cube-large-price' },
[
Builder.node('span', { className: 'price-info' }, PriceFormatting(prd))
]),
Builder.node('span', BuildYouSave(prd))
]),
Builder.node('div', { className: 'product-cube-shiptext' },
[
$(Builder.node('span', ship.fields, ship.text)).update(ship.text.stripTags())
])
]); }
else {
var brown = BuildBrownBox(prd, false, i, false); var ship = BuildShipText(prd); htm = Builder.node('div', { className: 'prdflat-' + (i % 2) },
[
Builder.node('table', { cellpadding: 0, cellspacing: 0, width: '100%' },
[
Builder.node('tr', {},
[
Builder.node('td', { className: 'prdflat-image-col' },
[
Builder.node('a', { className: 'prd-quickinfo-link-big', href: (support_product_popups ? prd.pop_url : prd.url), onclick: (support_product_popups ? 'bjx_prd(this, ' + prd.id + '); return false;' : '') },
[
Builder.node('img', { src: bjax_base_img + bjax_base_prds + "medium/" + prd.image }),
Builder.node('img', { className: 'freeshippingiconinfo', src: 'http://www.babyage.com/icons/ba/prodpage/freeshippingoverlay_125.png', style: (prd.freeshipping ? '' : 'display: none') })
]),
]),
Builder.node('td', { className: 'prdflat-desc-col' },
[
Builder.node('div', { className: 'product-cube-product-link' },
[
Builder.node('a', { style: 'display: block', href: prd.url }, prd.name)
]),
Builder.node('div', { className: 'product-cube-shiptext' },
[
$(Builder.node('span', ship.fields, ship.text)).update(ship.text.stripTags())
]),
$(Builder.node('span', brown.fields, brown.text || '')).update(brown.text)
]),
Builder.node('td', { className: 'prdflat-price-col' },
[
Builder.node('div', { className: 'product-cube-large-price' },
[
Builder.node('span', { className: 'price-info' }, PriceFormatting(prd))
]),
Builder.node('span', BuildYouSave(prd))
])
])
])
]); }
} else {
if (bjax_list_type == "cube") {
htm = Builder.node('div', {},
[
Builder.node('a', { href: (support_product_popups ? prd.pop_url : prd.url), onclick: (support_product_popups ? 'bjx_prd(this, ' + prd.id + '); return false;' : ''), className: 'prd-quickinfo-link' },
[
Builder.node('img', { src: (products_per_row == 3 ? bjax_base_img + bjax_base_prds + "medium/" + prd.image : bjax_base_img + bjax_base_prds + "small/" + prd.icon) })
]),
Builder.node('div', { className: 'product-cube-product-link' },
[
Builder.node('a', { style: 'display: block', href: prd.url }, prd.name)
]),
]); }
else {
htm = Builder.node('div', { className: 'prdflat-' + (i % 2) },
[
Builder.node('table', { cellpadding: 0, cellspacing: 0, width: '100%' },
[
Builder.node('tr', {},
[
Builder.node('td', { className: 'prdflat-image-col' },
[
Builder.node('a', { className: 'prd-quickinfo-link-big', href: (support_product_popups ? prd.pop_url : prd.url), onclick: (support_product_popups ? 'bjx_prd(this, ' + prd.id + '); return false;' : '') },
[
Builder.node('img', { src: bjax_base_img + bjax_base_prds + "small/" + prd.icon }),
Builder.node('img', { className: 'freeshippingiconinfo', src: '/icons/ba/prodpage/freeshippingoverlay_large.png', style: (prd.freeshipping ? 'display: none' : '') })
]),
]),
Builder.node('td', { className: 'prdflat-desc-col' },
[
Builder.node('div', { className: 'product-cube-product-link' },
[
Builder.node('a', { style: 'display: block', href: prd.url }, prd.name)
])
]),
Builder.node('td', { className: 'prdflat-price-col' },
[
Builder.node('div', { className: 'product-cube-large-price' },
[
Builder.node('span', { className: 'price-info' }, PriceFormatting(prd))
]),
Builder.node('span', BuildYouSave(prd))
])
])
])
]); }
}
return Builder.node('div', [htm]); }
function bjx_clr(type, group) {
if (!_bjx_group_status_list[group]) { return; }
$('elem_' + type + '_' + ident).select('.selected').each(function(item) { item.removeClassName('selected'); }); _bjx_group_status_list[group].each(function(e) { bjax_list_arr.set(type, bjax_list_arr.get(type).without(e)); }); bjax_list(); }
function bjx_set_all(type, group) {
_hold_list = true; $('elem_' + type + '_' + group).select('li').each(function(item) {
if (item.visible()) {
item.removeClassName('selected'); }
else {
item.addClassName('selected'); }
item.onclick(); }); _hold_list = false; update_selected_brands_div(); bjax_list_cp = 1; bjax_list(); }
var _bjx_group_status_list = []; function _bjx_sel(obj, val, t) {
obj = $(obj); var group = ''; var parent = obj.up('ul'); if (parent != null) {
group = parent.identify(); } else {
parent = obj.up('table'); if (parent != null) {
group = parent.identify(); }
}
bjx_sel(obj, val, t, group); }
function bjx_sel(obj, val, t, group) {
obj = $(obj); if (obj.hasClassName("dsbl")) { return; }
if (!_bjx_group_status_list[group])
_bjx_group_status_list[group] = [val]; else if (_bjx_group_status_list[group].indexOf(val) < 0)
_bjx_group_status_list[group][_bjx_group_status_list[group].length] = val; obj = $(obj); var now_selected = false; obj.toggleClassName('selected'); if (obj.hasClassName('selected')) {
now_selected = true; if (bjax_list_arr.get(t).indexOf(val) < 0)
bjax_list_arr.get(t)[bjax_list_arr.get(t).length] = val; } else {
bjax_list_arr.set(t, bjax_list_arr.get(t).without(val)); now_selected = false; }
var _value = ""; if (obj.down("img")) {
_value = obj.down("img").alt; }
else if (obj.down("a")) {
_value = obj.down("a").innerHTML; }
else {
_value = obj.innerHTML; }
var _cat = ""; switch (t) {
case "brnd":
_cat = "Brand"; break; case "cat":
_cat = "Category"; break; case "list":
_cat = "Special List"; break; case "var":
_cat = "Variation"; break; default:
_cat = t; }
if (t == 'brnd') {
if (obj.hasClassName('selected')) {
selected_brands.set(obj.identify().replace(/[^0-9]/g, ''), obj.down('a').innerHTML.stripTags().trim()); }
else {
selected_brands.unset(obj.identify().replace(/[^0-9]/g, '')); }
}
if (!_hold_list) {
update_selected_brands_div(); bjax_list_cp = 1; bjax_list(); }
}
function bjx_prd(obj, pid, foo) {
if (Object.isUndefined(foo)) {
foo = ""; }
if (bjax_list_action == "GetProduct" || bjax_list_action == "GetSearch") {
bjx_pop(obj, '/prod.aspx?' + foo + 'id=' + pid, 'middle', true); }
else if (bjax_list_action == "GetCollections") {
bjx_pop(obj, '/bedding_popup.aspx?' + foo + 'id=' + pid, 'middle', true); }
else {
bjx_pop(obj, '/prod.aspx?' + foo + 'id=' + pid, 'middle', true); }
}
function bjx_pop_shop(obj) {
obj = $(obj); if (!Object.isUndefined(obj.down("img"))) {
obj = obj.down("img"); }
bjx_pop(obj, bjax_base_cart_pop_url, 'middle', true); }
function bjx_bedding(obj, pid) {
bjx_pop(obj, '/bedding_popup.aspx?id=' + pid, 'middle', true); }
function bjx_cross(obj, pid, productname) {
bjx_pop(obj, '/prod.aspx?cross=1&id=' + pid, 'middle', true); }
var _bjx_pop_dragger; var _click_obj; var popup_arrow_position; function place_popup(event) {
var pop = $('divpop'); if ($('popup_arrow') != null) {
$('popup_arrow').remove(); }
var arrow_url = '/icons/ba/popup/popup_arrow_'; var obj = $(_click_obj); var type = 1; var dimensions = obj.getDimensions(); var offset = obj.viewportOffset(); var scroll = document.viewport.getScrollOffsets(); var viewportDimensions = document.viewport.getDimensions(); var popDimensions = pop.getDimensions(); if (popDimensions.height > viewportDimensions.height || popDimensions.width > viewportDimensions.width) {
_calculate_position = false; }
var type; var new_left = 0; var new_top = 0; if (_calculate_position) {
var s = ''; new_left = (scroll.left + offset.left + ((dimensions.width) / 2)); new_top = (scroll.top + offset.top + ((dimensions.height) / 2)); if ($('popup_arrow') == null) {
var timg = document.createElement('img'); timg = $(timg); timg.id = 'popup_arrow'; timg.alt = ''; timg.setStyle({ position: 'absolute', zIndex: 1001 }); $$('body')[0].appendChild(timg); }
var img = $('popup_arrow'); if (new_left < (scroll.left + (viewportDimensions.width / 2))) {
if (new_top < (scroll.top + (viewportDimensions.height / 2))) {
type = 1; s = 'tl'; img.clonePosition(obj, { setWidth: false, setHeight: false, offsetLeft: dimensions.width / 2, offsetTop: dimensions.height / 2 }); new_left += 64; new_top -= 10; }
else {
type = 2; new_top -= popDimensions.height; s = 'bl'; img.clonePosition(obj, { setWidth: false, setHeight: false, offsetLeft: dimensions.width / 2, offsetTop: (dimensions.height / 2) - 120 }); new_left += 64; new_top += 10; }
}
else {
new_left -= popDimensions.width + 80; if (new_top < (scroll.top + (viewportDimensions.height / 2))) {
type = 3; s = 'tr'; img.clonePosition(obj, { setWidth: false, setHeight: false, offsetLeft: (dimensions.width / 2) - 80, offsetTop: dimensions.height / 2 }); new_left += 17; new_top -= 10; }
else {
type = 4; new_top -= popDimensions.height; s = 'br'; img.clonePosition(obj, { setWidth: false, setHeight: false, offsetLeft: (dimensions.width / 2) - 80, offsetTop: (dimensions.height / 2) - 120 }); new_left += 17; new_top += 10; }
}
var tmp = arrow_url + s + '.png'; img.src = tmp; }
else {
new_left = (scroll.left + ((viewportDimensions.width - popDimensions.width) / 2)); new_top = (scroll.top + ((viewportDimensions.height - popDimensions.height) / 2)); }
var new_bottom = new_top + popDimensions.height; if (new_bottom > scroll.top + viewportDimensions.height) {
new_top -= (new_bottom - (scroll.top + viewportDimensions.height)); }
if (new_top < scroll.top) {
new_top = scroll.top; }
if (new_left < scroll.left) {
new_left = scroll.left; if ($('popup_arrow') != null) {
$('popup_arrow').remove(); }
}
popup_arrow_position = type; pop.setStyle({ left: new_left + 'px', top: new_top + 'px' }); pop.className = 'prdpop'; pop.style.visibility = 'visible'; if (Prototype.Browser.IE) {
$$("select").each(function(item) { item.style.visibility = 'hidden'; }); $("divpop").select("select").each(function(item) { item.style.visibility = 'visible'; }); }
FixPNGs(null); pop.show(); }
function write_review_popup(obj, id) {
bjx_pop(obj, "/add_review.aspx?id=" + id, "", true); }
function tell_a_friend_popup(obj, id, productname) {
var post = "?id=" + id; if (document.location) {
}
bjx_pop(obj, "/tellafriend.aspx" + post, "", true); }
function bjx_pop(obj, url, pos, calculate_position) {
obj = $(obj); var pop = $('divpop'); _calculate_position = false; _click_obj = obj; pop.update(get_loading_contents()); place_popup(); _calculate_position = calculate_position; new Ajax.Request(url,
{
onSuccess: function(trns) {
pop.style.visibility = 'hidden'; pop.update(trns.responseText); _bjx_prd_dragger = new Draggable('divpop',
{
handle: 'drgbl',
starteffect: function(event) {
if ($('popup_arrow') != null) {
$('popup_arrow').remove(); }
},
endeffect: function(event) {
},
scroll: window
}); },
onFailure: function(e) {
HideDivPop(); }
}); }
var items_found_in_find = 0; function bjax_find(obj, type) {
$$('.css_ident_' + type).each(
function(item) {
item.select('li').each(
function(elem) {
var re = new RegExp("(" + obj.value.trim() + ")", "gi"); if (re.test(elem.down("a").innerHTML.stripTags().trim())) {
elem.down("a").innerHTML = elem.down("a").innerHTML.stripTags().replace(/&amp;/g, '&').replace(re, '<span class="highlight">$1</span>'); elem.show(); }
else {
elem.down("a").innerHTML = elem.down("a").innerHTML.stripTags().replace(/&amp;/g, '&'); elem.hide(); }
}
); }
); }
var price_slider = null; var orig_price_min = 0; var orig_price_max = 0; function bjx_sldr_reset() {
if ($('spn_slider_min') != null) {
tupdate('spn_slider_min', '$' + bjax_list_min)
tupdate('spn_slider_max', '$' + bjax_list_max); orig_price_min = bjax_list_min; orig_price_max = bjax_list_max; price_slider = new Control.Slider(['div_slider_min', 'div_slider_max'], 'div_slider',
{
sliderValue: [bjax_list_min, bjax_list_max],
range: $R(bjax_list_min, bjax_list_max),
values: $R(bjax_list_min, bjax_list_max),
onChange: function(elems) {
tupdate('spn_slider_min', "$" + Math.min(elems[0], elems[1]))
tupdate('spn_slider_max', "$" + Math.max(elems[0], elems[1])); bjax_list_min = Math.min(elems[0], elems[1]); bjax_list_max = Math.max(elems[0], elems[1]); if (bjax_list_min == bjax_list_max) {
if (bjax_list_min == orig_price_min) {
bjax_list_max = bjax_list_min + 1; }
else {
bjax_list_min = bjax_list_max - 1; }
}
bjax_list_srt = 2; bjax_list(); },
onSlide: function(elems) {
tupdate('spn_slider_min', "$" + Math.min(elems[0], elems[1]))
tupdate('spn_slider_max', "$" + Math.max(elems[0], elems[1])); }
}); }
}
function bjx_sldr_reset_2() {
price_slider.setValue([orig_price_min, orig_price_max]); }
var bjx_sldr = null; var bjx_sldr_2 = null; function HideDivPop() {
if (Prototype.Browser.IE) {
$$("select").each(function(item) { item.style.visibility = 'visible'; }); }
if ($('popup_arrow') != null) {
$('popup_arrow').remove(); }
if ($("divpop") != null) {
$("divpop").hide(); }
}
function bjx_sldp_reset() {
var vals = []; for (var i = 1; i <= bjax_list_pages; i++)
vals[vals.length] = i; if ($("divpageslide_full") != null &&
$("divpageslide_2_full") != null) {
if (bjax_list_pages == 1) {
$("divpageslide_full").style.visibility = 'hidden'; $("divpageslide_2_full").style.visibility = 'hidden'; return; }
else {
$("divpageslide_full").style.visibility = 'visible'; $("divpageslide_2_full").style.visibility = 'visible'; }
}
if ($('divpageslid_pin') != null) {
bjx_sldr = new Control.Slider('divpageslid_pin', 'divpageslide', {
restricted: true,
sliderValue: bjax_list_cp,
range: $R(1, bjax_list_pages),
values: $R(1, bjax_list_pages),
onChange: UpdateSliders,
onSlide: function(v) {
$('spn_page').update(v); $('spn_page_2').update(v); }
}); bjx_sldr_2 = new Control.Slider('divpageslid_pin_2', 'divpageslide_2', {
restricted: true,
sliderValue: bjax_list_cp,
range: $R(1, bjax_list_pages),
values: $R(1, bjax_list_pages),
onChange: UpdateSliders2,
onSlide: function(v) {
$('spn_page').update(v); $('spn_page_2').update(v); }
}); }
}
var kludge = 0; function UpdateSliders(v) {
if (kludge % 2 == 0) {
bjx_pg(v); kludge++; bjx_sldr_2.setValue(v); $('spn_page').update(v); $('spn_page_2').update(v); }
else {
kludge = 0; }
}
function UpdateSliders2(v) {
if (kludge % 2 == 0) {
bjx_pg(v); kludge++; bjx_sldr.setValue(v); $('spn_page').update(v); $('spn_page_2').update(v); }
else {
kludge = 0; }
}
function bjx_srt(i) {
bjax_list_cp = 1; bjax_list_srt = i; bjax_list(); }
function bjx_ipp(i) {
bjax_list_cp = 1; bjax_list_ppp = i; bjax_list(); }
var bjx_last_page = -1; function bjx_pg(act) {
if (act == bjx_last_page) { return; }
bjx_last_page = act; var do_page_update = false; if (isNaN(act)) {
if (act == 'n') {
bjax_list_cp++; bjax_list_direction = 'right'; do_page_update = true; }
else {
if (bjax_list_cp == 1) { return; }
bjax_list_cp--; bjax_list_direction = 'left'; do_page_update = true; }
}
else {
bjax_list_cp = act; }
if (bjax_list_cp > bjax_list_pages) bjax_list_cp = bjax_list_pages; if (do_page_update) {
kludge = 0; if (bjx_sldr != null) {
bjx_sldr.setValue(bjax_list_cp); }
}
else {
bjax_list(); }
}
function bjx_stl(t) {
bjax_list_type = t; bjax_rewrt(); }
function bjx_sel_var(obj, text, img, t, v) {
obj = $(obj); if (obj == null) { return; }
var tmp_vars_cur = bjax_vars_curr[t]; bjax_vars_curr[t] = v; var full_match = false; var found_it_prod = null; bjax_vars_arr.each(function(product) {
if (product.v && !full_match) {
var this_match = true; product.v.each(function(variation) {
if (bjax_vars_curr[variation.t.id] != variation.id) {
this_match = false; }
}); if (this_match) {
found_it_prod = product; full_match = true; }
}
}); sku = found_it_prod; if (sku == null) {
alert("This product is not available in that combination."); bjax_vars_curr[t] = tmp_vars_cur; return; }
obj.up("td").select("a.selected").each(function(e) { e.removeClassName("selected"); }); obj.addClassName('selected'); bjx_rwrt_sku(obj, sku, img); }
function bjx_rwrt_sku(obj, sku, img) {
obj.up("tr.variation-body").up("table").select(".variation-desc-name").each(function(item) { item.update(" - " + sku.VariationText); }); obj.up("form").down(".product-name .variation-desc-name").update(" - " + sku.VariationText); bjx_chng_img(img, sku.image, sku.picture); if (obj.up("form").down('input[name="hideProductID"]') != undefined) {
obj.up("form").down('input[name="hideProductID"]').value = sku.id; }
$('li_ships_today').update(sku.shipText); if (obj.up("form").down('.buy-now-text') != undefined) {
obj.up("form").down('.buy-now-text').update(LittlePriceHTML(sku)); }
if ($('price-gray-outline-middle') != null) {
$('price-gray-outline-middle').update(BigPriceHTML(sku)); }
var wf = $$('.wf-long-buy-now-text'); if (wf && wf.length > 0) {
wf.each(function(el) {
el.update(BigWFSKU(sku, false)); }); }
var wf2 = $$('#new_prodpage_right .buy-now-text'); if (wf2 && wf2.length > 0) {
wf2.each(function(el) {
el.update(BigWFSKU(sku, true)); }); }
var wf3 = $$('#new_prodpage_center .buy-now-text'); if (wf3 && wf3.length > 0) {
wf3.each(function(el) {
el.update(BigWFSKU(sku, false)); }); }
if (obj.up("form").down(".product-number span") != undefined) {
obj.up("form").down(".product-number span").update(sku.sku); }
if ($('flat_rate_shipping_image') != null) {
if (!!sku.freeshipping) {
$('flat_rate_shipping_image').src = '/icons/wf/free_shipping.jpg'; }
else {
$('flat_rate_shipping_image').src = '/icons/wf/flat-rate-shipping.jpg'; }
}
if ($('flat_rate_shipping_image_2') != null) {
if (!!sku.freeshipping) {
$('flat_rate_shipping_image_2').src = '/icons/wf/var_c/wf_free_shipping.png'; }
else {
$('flat_rate_shipping_image_2').src = '/icons/wf/var_c/wf_flat_rate_shipping.png'; }
}
bjx_show_hid('div_buyable', !!sku.avail.buyable); bjx_show_hid('wf_long_div_buyable', !!sku.avail.buyable); bjx_show_hid('Notify', !!!sku.avail.buyable); bjx_show_hid('Notify2', !!!sku.avail.buyable); bjx_show_hid('Notify3', !!!sku.avail.buyable); bjx_show_hid('ReplacementSKU', !!!sku.avail.buyable); bjx_show_hid('div_registry', sku.avail.active); bjx_show_hid('free-shipping-li', !!sku.freeshipping); bjx_show_hid('free-shipping-li2', !!sku.freeshipping); bjx_show_hid('li_ships_today', updateSkuStatus($("spn_condition"), sku)); }
function BigWFSKU(sku, is_long) {
var x = ''; sku.msrp = parseFloat(sku.msrp); sku.price = parseFloat(sku.price); var perc = (sku.msrp - sku.price) / sku.msrp; if ((0.95 * sku.msrp) > sku.price) {
if (is_long) {
x += '<div class="low-price">SALE PRICE</div>'; }
x += '<div class="wf-old-price">$' + sku.msrp.toFixed(2) + '</div>'; x += '<div class="big-price-prod"><span>$' + sku.price.toFixed(2) + '</span></div>'; x += '<div class="original-price">You Save: $' + (sku.msrp - sku.price).toFixed(2) + ' (Over ' + Math.floor(Math.floor(perc * 100) / 5) * 5 + '%)</div>'; }
else {
x += '<div class="big-price-prod"><span>$' + sku.price.toFixed(2) + '</span></div>'; }
return x; }
function BigPriceHTML(sku) {
var x = ''; sku.msrp = parseFloat(sku.msrp); sku.price = parseFloat(sku.price); var perc = (sku.msrp - sku.price) / sku.msrp; if ((0.95 * sku.msrp) > sku.price) {
x += '<div class="big-price-prod">Sale Price: <span>$' + sku.price.toFixed(2) + '</span></div>'; x += '<div class="original-price">Original Price: $' + sku.msrp.toFixed(2) + '</div>'; x += '<div class="original-price">You Save: $' + (sku.msrp - sku.price).toFixed(2) + ' (Over ' + Math.floor(Math.floor(perc * 100) / 5) * 5 + '%)</div>'; }
else {
x += '<div class="big-price-prod">$' + sku.price.toFixed(2) + '</div>'; x += '<div class="low-price">BabyAge Low Price!</div>'; }
return x; }
function LittlePriceHTML(sku) {
var x = ''; sku.msrp = parseFloat(sku.msrp); sku.price = parseFloat(sku.price); if ((0.95 * sku.msrp) > sku.price) {
x += '<div class="big-price-little-sale">Sale Price</div>'; x += '<div class="big-price-prod"><span>$' + sku.price.toFixed(2) + '</span></div>'; }
else {
x += '<div class="low-price">BabyAge Low Price!</div>'; x += '<div class="big-price-prod"><span>$' + sku.price.toFixed(2) + '</span></div>'; }
return x; }
function updateSkuStatus(div, sku) {
if (!!!sku.avail.active) {
div.update(sku.condition); div.className = sku.conditionclass; return false; }
if (sku.condition.toUpperCase().indexOf('OUT OF STOCK') != -1 || sku.condition.toUpperCase() == 'SOLD OUT') {
div.update(sku.condition); div.className = sku.conditionclass; return false; }
if (!!sku.selloutrisk) {
div.update(sku.condition); div.className = sku.conditionclass; return true; }
div.update(sku.condition); div.className = sku.conditionclass; return true; }
function bjx_show_hid(obj, show) {
obj = $(obj); if (!obj) { return; }
if (show) obj.show(); else obj.hide(); }
function bjx_chng_img(i, u, lu) {
if (u == "" || u == null) { return; }
var img = $(i); if (img == null) { return; }
if (!(u == "")) u = bjax_base_img + bjax_base_prds + "medium/" + u; if (!(lu == "")) lu = bjax_base_img + bjax_base_prds + "large/" + lu; if (img.up("a") != undefined) {
img.up("a").href = lu; }
img.src = u; img.lowsrc = lu; }
function bjx_momo(obj) {
if (obj.src && (obj.src.indexOf("_over") == -1)) {
obj.src = obj.src.replace(/\.gif$/ig, "_over.gif"); obj.src = obj.src.replace(/\.png$/ig, "_over.png"); } else if (obj.className.indexOf("_over") == -1) {
obj.className = obj.className + "_over"; }
obj.over = true; obj.onmouseout = function() {
if (obj.src && obj.src.indexOf("_over") > -1) {
obj.src = obj.src.replace(/_over/ig, ""); }
else {
obj.className = obj.className.replace(/_over/ig, ""); }
obj.over = false; }; }
String.prototype.trim = function() {
return this.replace(/^\s+|\s+$/g, ""); }
function AjaxRating(wrapper, defaultRating) {
this.wrapper = $(wrapper); this.x = defaultRating; this.wrapper.RatingSystem = this; this.messages = {
1: "Avoid this product",
2: "Don't Recommend",
3: "Recommend, but...",
4: "Recommend",
5: "Highly Recommend"
}; this.wrapper.select("img").each(
function(img) {
img.observe('mouseover', StarMouseOver); img.observe('mouseout', StarMouseOut); }
); this.setRating = function(event) {
var rating = event.element().title; this.wrapper.down("span").update(this.messages[rating]); $("rating").value = rating; var i = 1; this.wrapper.select("img").each(
function(img) {
if (i <= parseInt(rating, 10)) {
img.src = img.src.replace(/off.png$/, "on.png"); }
else {
img.src = img.src.replace(/on.png$/, "off.png"); }
i++; }
); }; }; function validateForBlank(id) {
if ($(id).value.trim() == "") {
$(id).addClassName("error-cell"); return true; }
else {
$(id).removeClassName("error-cell"); return false; }
}
function StarMouseOver(event) {
var element = event.element(); element.up().RatingSystem.setRating(event); }
function StarMouseOut(event) {
}
function SubmitReview(obj) {
var post = $(obj).up("form").serialize(); var prompt = false; prompt = validateForBlank("ReviewTitle") || prompt; prompt = validateForBlank("ReviewContent") || prompt; prompt = validateForBlank("ReviewName") || prompt; prompt = validateForBlank("ReviewEmail") || prompt; var message = ""
var email = $('ReviewEmail'); if (/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,6}$/.test(email.value.trim())) {
message += "The email you have entered appears to be invalid.\n" + email.value; }
if (prompt) {
message += "Please fill in all fields."; }
if (message != "") {
alert(message); }
else {
new Ajax.Request(
"/add_review.aspx",
{
method: 'post',
parameters: post,
onSuccess: function(transport) {
$("divpop").update(transport.responseText); }
}); }
}
function SendToFriend(obj, productname) {
var post = $(obj).up("form").serialize(); var id = $(document.body).down('input[name="hideBaseId"]').value; if (document.location) {
}
var prompt = false; prompt = validateForBlank("FriendEmail") || prompt; prompt = validateForBlank("FriendSubject") || prompt; prompt = validateForBlank("FriendMessage") || prompt; if (prompt) {
alert("Please fill in all fields."); }
else {
new Ajax.Request(
"/tellafriend.aspx",
{
method: 'post',
parameters: post,
onSuccess: function(transport) {
$("divpop").update(transport.responseText); }
}); }
}
function AddToRegistry(obj, registry_id) {
obj = $(obj); var form = obj.up("form"); var products = form.select('input[name="hideProductID"]'); var quantities = form.select('*[name="txtProductQuantity"]'); var post = ""; var i = 0; products.each(function(product) {
if (quantities[i] && quantities[i].value) {
if (!isNaN(parseInt(quantities[i].value, 10))) {
post += product.value + ","; }
}
i++; }); if (registry_id > 0) {
post += "&registry_id=" + registry_id; }
if (document.location) {
post += "&url=" + encodeURI(document.location); }
post += "&button=" + obj.identify(); bjx_pop(obj, "/add_to_registry.aspx?productid=" + post, "", true); }
function DoRegistryLogin(obj) {
obj = $($('source_button_id').value); $('registry_login_form').setOpacity(0.5); ProcessAjaxLogin($('email_address').value, $('password').value,
function(transport) {
$('registry_login_form').setOpacity(1.0); if (transport.responseText == "success") {
HideDivPop(); AddToRegistry(obj, 0); }
else {
$('registry_login_form').update(transport.responseText); }
}); }
function ProcessAjaxLogin(email, password, func) {
new Ajax.Request(
"/ajax/login.aspx",
{
method: 'post',
parameters: "email=" + email + "&password=" + password,
onSuccess: func
}); }
function GetBottomPositionOfElement(obj) {
obj = $(obj); var dimensions = obj.getDimensions(); var offset = obj.viewportOffset(); var scroll = document.viewport.getScrollOffsets(); var viewportDimensions = document.viewport.getDimensions(); var new_left = (scroll.left + ((viewportDimensions.width) / 2)); var new_top = (scroll.top + ((viewportDimensions.height) / 2)); return { left: new_left + 'px', top: new_top + 'px' }; }
function NotifyMe(obj) {
obj = $(obj); var form = obj.up("form"); if (form != undefined) {
var id = form.down('input[name="hideProductID"]'); bjx_pop(obj, "/notifyme.aspx?id=" + id.value, "", true); }
}
function NotifyMeSubmit(obj) {
var prompt = false; prompt = validateForBlank("NotifyEmail") || prompt; var post = $(obj).up("form").serialize(); if (prompt) {
alert("Please fill in all fields."); }
else {
new Ajax.Request(
"/notifyme.aspx",
{
method: 'post',
parameters: post,
onSuccess: function(transport) {
$("divpop").update(transport.responseText); }
}
); }
}
function PlayMultiMedia(obj, fileid, baseid) {
_click_obj = obj; new Ajax.Request(
"/multimedia.aspx",
{
method: 'post',
parameters: "file=" + fileid + "&id=" + baseid,
onSuccess: function(transport) {
$("divpop").update(transport.responseText); _bjx_prd_dragger = new Draggable('divpop', { handle: 'drgbl', starteffect: function(event) { }, endeffect: function(event) { }, scroll: window }); }
}); }
var combiwindow = null; function PlayMultiMedia2(obj, fileid, baseid, file) {
if (file.match("combi-intl")) {
combiwindow = window.open(file, 'combiwindow','width=670,height=515,left=0,top=0,toolbar=No,location=No,scrollbars=No,status=No,resizable=No,fullscreen=No'); combiwindow.focus(); }
else {
PlayMultiMedia(obj, fileid, baseid); }
}
function PlayMultiMedia3(obj, fileid, baseid, file, width, height) {
if (width > 0 && height > 0) {
combiwindow = window.open(file, 'combiwindow', 'width=' + width + ',height=' + height + ',left=0,top=0,toolbar=No,location=No,scrollbars=No,status=No,resizable=No,fullscreen=No'); combiwindow.focus(); }
else {
PlayMultiMedia(obj, fileid, baseid); }
}
function ActiveTabByDivID(divid) {
var div = $(divid); var live = div.up(".tabberlive"); if (live == undefined) {
return; }
var i = 0; var foundindex = -1; live.select(".tabbertab").each(function(item) {
if (item.id == divid) {
foundindex = i; }
i++; }); if (i == -1) {
return; }
if (live.tabber) {
live.tabber.tabShow(foundindex); }
div.scrollTo(); }
/* Legacy Functions */
function popwindowWithNoScrollBar(filename, wwidth, wheight) {
var re = /~+/; filename = filename.replace(re, "'"); leftPos = 0; topPos = 0; var winWidth = wwidth; var winHeight = wheight; if (screen) {
leftPos = (screen.width / 2) - winWidth / 2; topPos = (screen.height / 2) - winHeight / 2; }
if (navigator.userAgent.indexOf('Opera') > -1) {
var newWin = window.open(filename, 'newwin', 'width=' + winWidth + ',height=' + winHeight + ',resizable=no,scrollbars=yes'); newWin.focus(); }
else {
var newWin = window.open(filename, 'newwin', 'width=' + winWidth + ',height=' + winHeight + ',left=' + leftPos + ',top=' + topPos + ',resizable=no,scrollbars=no'); newWin.focus(); }
}
function OpenCertDetails() {
thewindow = window.open('https://seal.thawte.com/thawtesplash?form_file=fdf/thawtesplash.fdf&dn=WWW.BABYAGE.COM&lang=en', 'anew', config = 'height=400,width=515,toolbar=no,menubar=no,scrollbars=yes,resizable=no,location=no,directories=no,status=yes'); }
function popwindow(filename, wwidth, wheight) {
var re = /~+/; filename = filename.replace(re, "'"); leftPos = 0; topPos = 0; var winWidth = wwidth; var winHeight = wheight; if (screen) {
leftPos = (screen.width / 2) - winWidth / 2; topPos = (screen.height / 2) - winHeight / 2; }
if (navigator.userAgent.indexOf('Opera') > -1) {
var newWin = window.open(filename, 'newwin', 'width=' + winWidth + ',height=' + winHeight + ',resizable=no,scrollbars=yes'); newWin.focus(); }
else {
var newWin = window.open(filename, 'newwin', 'width=' + winWidth + ',height=' + winHeight + ',left=' + leftPos + ',top=' + topPos + ',resizable=no,scrollbars=yes'); newWin.focus(); }
}
Element.addMethods({
pngHack: function(el) {
var el = $(el); var gif = '/icons/ba/blank.gif'; if ((el.match('img')) && (el.src.include('png'))) {
var alphaImgSrc = el.src; var dimensions = el.getDimensions(); var sizingMethod = 'crop'; el.src = gif; el.setStyle({ height: dimensions.height + 'px', width: dimensions.width + 'px' }); } else if (el.getStyle('backgroundImage').include('png')) {
var bgc = el.getStyle('backgroundColor') || ''; var alphaImgSrc = el.getStyle('backgroundImage').gsub(/url\(|\)|'|"/, ''); var sizingMethod = 'scale'; el.setStyle({ background: [bgc, ' url(', gif, ') no-repeat top right'].join('') }); } else if (el.hasAttribute("background") && el.getAttribute("background").include('png')) {
var bgc = ''; var alphaImgSrc = el.getAttribute("background").gsub(/url\(|\)|'|"/, ''); var sizingMethod = 'scale'; el.setStyle({ background: [bgc, ' url(', gif, ') no-repeat top right'].join('') }); } else {
return el; }
el.runtimeStyle.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="#{al}",sizingMethod="#{sz}")'.interpolate({ al: alphaImgSrc, sz: sizingMethod }); return el; }
}); function FixPNGs(event) {
if (!Prototype.Browser.IE) { return; }
if (window.XMLHttpRequest) { return; }
$$('img[src$=".png"]', 'input[src$=".png"]', 'td').invoke('pngHack'); }
Event.observe(window, 'load', FixPNGs); function secureRedirect(event) {
if (document.location.href.indexOf('babyh.com') > -1) {
document.location.href = document.location.href.replace(/babyh\.com/, "babyage.com"); return; }
if (document.location.href.startsWith('https://') &&
document.location.pathname.endsWith(".htm")) {
document.location.href = document.location.href.replace(/https:/, "http:"); }
}
Event.observe(document, 'dom:loaded', secureRedirect); function getRequestString(s) {
s = s + "="; var r = ""; if (document.location.search) {
var v = document.location.search + ""; i = v.toLowerCase().indexOf(s.toLowerCase()); if (i >= 0) {
v = v.substring(i + s.length); if (v.indexOf("&") > 0) v = v.substring(0, v.indexOf("&")); r = v; }
}
return r; }
if (!window.console) {
window.console = {
init: function() { },
hide: function() { },
show: function() { },
log: function(o) { },
error: function(o) { },
warning: function(o) { },
clear: function() { },
addLoadEvent: function(func) { }
}; }
function ShowSizeChart(img, productname) {
var popup = $("sizechart"); popup.show(); popup.clonePosition(img, { setWidth: false, setHeight: false, offsetLeft: -20, offsetTop: -20 }); }
var last_ajax = document.location.href; function TrackAjax(url) {
_gaq.push(['_trackPageview', url.replace(/https?\:\/\/[^\/]+?\//, '/').replace(/#(.+)$/, '')]); }
function SelectAllBedding(obj) {
$(obj).up("form").select("select").each(function(drop) {
$(drop).down('option[value="1"]').selected = true; }); }
window.dhtmlHistory.create({
toJSON: function(o) {
return Object.toJSON(o); },
fromJSON: function(s) {
return s.evalJSON(); }
}); var yourListener = function(newLocation, historyData) {
if (!is_parametric) { return; }
if (newLocation) {
var tmp = newLocation.toQueryParams(); bjax_list_cp = tmp.p; bjax_list_ppp = tmp.pp; bjax_list_arr = new Hash(); bjax_list_arr.set("brnd", toIntArray(tmp.b.split(','))); bjax_list_arr.set("cat", toIntArray(tmp.c.split(','))); bjax_list_arr.set("list", toIntArray(tmp.l.split(','))); bjax_list_arr.set("var", toIntArray(tmp.v.split(','))); if (tmp.pt) {
bjax_list_arr.set("pricetype", toIntArray(tmp.pt.split(','))); }  else {
bjax_list_arr.set("pricetype", []); }
bjax_list_arr_o = new Hash(); bjax_list_arr_o.set("brnd", toIntArray(tmp.ob.split(','))); bjax_list_arr_o.set("cat", toIntArray(tmp.oc.split(','))); bjax_list_arr_o.set("list", toIntArray(tmp.ol.split(','))); if (tmp.osb) {
bjax_list_arr_o.set("superbrand", toIntArray(tmp.osb.split(','))); } else {
bjax_list_arr_o.set("superbrand", []); }
if (tmp.osl) {
bjax_list_arr_o.set("superlist", toIntArray(tmp.osl.split(','))); } else {
bjax_list_arr_o.set("superlist", []); }
bjax_list_srt = tmp.srt; }
else {
bjax_list_ppp = 20; bjax_list_cp = 1; bjax_list_pages = 1; bjax_list_arr = new Hash(); bjax_list_arr.set("brnd", []); bjax_list_arr.set("cat", []); bjax_list_arr.set("list", []); bjax_list_arr.set("var", []); bjax_list_arr.set("pricetype", []); bjax_list_arr_o = new Hash(); bjax_list_arr_o.set("brnd", []); bjax_list_arr_o.set("cat", []); bjax_list_arr_o.set("list", []); bjax_list_arr_o.set("superbrand", []); bjax_list_arr_o.set("superlist", []); bjax_list_srt = 0; bjax_list_type = "cube"; bjax_list_direction = 'down'; init_parameterizer(); }
bjax_fetch(); rebuild_parametric_selections(); }
Event.observe(window, 'load', function() {
dhtmlHistory.initialize(); dhtmlHistory.addListener(yourListener); }); function rebuild_parametric_selections() {
var types = bjax_list_arr.keys(); selected_brands = new Hash(); types.each(function(key) {
$$('.css_ident_' + key + ' li').each(function(li) {
li.removeClassName('selected'); if (is_selected(key, li.id.replace(/[^0-9]/g, ''))) {
if (key == 'brnd') selected_brands.set(parseInt(li.id.replace(/[^0-9]/g, ''), 10), li.down('a').innerHTML.stripTags().trim()); li.addClassName('selected'); }
}); }); $$('table.css_ident_var td').each(function(li) {
li.removeClassName('selected'); if (is_selected('var', li.id.replace(/[^0-9]/g, ''))) {
li.addClassName('selected'); }
}); $$('select.pardrop').each(function(select) {
select.select('option').each(function(o) {
if (select.hasClassName('noborder')) {
if (parseInt(o.value, 10) == bjax_list_srt) {
o.selected = true; }
}
else {
if (parseInt(o.value, 10) == bjax_list_ppp) {
o.selected = true; }
}
}); }); }
function update_selected_brands_div() {
return; if (selected_brands.keys().length > 0) {
if ($('selected-brands') != null) {
$('selected-brands').update('<strong>Selected Brands</strong><div><ul><li class="selected">' + selected_brands.values().sort().join('</li><li class="selected">') + '</li></ul></div>'); }
}
else {
if ($('selected-brands') != null) {
$('selected-brands').update(); }
}
}
function toIntArray(zagga) {
var tmp = []; for (var i = 0; i < zagga.length; ++i) {
if (!isNaN(parseInt(zagga[i]))) {
tmp[tmp.length] = parseInt(zagga[i]); }
}
return tmp; }
function is_selected(type, value) {
return bjax_list_arr.get(type).indexOf(parseInt(value, 10)) > -1; }
var BajaxScroller = Class.create(); var BajaxScrollerAuto = Class.create(); function DisableScrollerEvent(effect) {
var t = effect.element.scroller; t.disable((t.direction == 'right') ? t.right : t.left); }
function DisableScrollerEvent2(effect) {
var t = effect.element.scroller; t.direction = ('left' == t.direction) ? 'right' : 'left'; t.move(null); }
BajaxScrollerAuto.prototype = {
initialize: function(_scrollobj) {
this.scrollobj = $(_scrollobj); this.scrollobj.scroller = this; this.direction = 'right'; this.start = parseFloat(this.scrollobj.getStyle('left') || 0); },
move: function(event) {
var foo = $(this.scrollobj); if (Object.isUndefined(foo)) {
foo = $(event.element()); if (!foo.match('.scroller-container')) foo = foo.up('.scroller-container'); }
var width = parseFloat(foo.down('table').getWidth()); var area = parseFloat(foo.up('div').getWidth()); var current = parseFloat(foo.getStyle('left') || 0); var scrolled = foo.scroller.start - current; var amount = scrolled; if (foo.scroller.direction == 'right') amount = -(width - area - scrolled); var dur = .035 * Math.abs(amount); foo.scroller.stop(event); foo.scroller.effect = new Effect.MoveBy(foo, 0, amount,
{
duration: dur,
delay: 0,
afterFinish: DisableScrollerEvent2,
transition: Effect.Transitions.linear,
fps: 15
}); },
stop: function(event) {
if (this.effect) {
this.effect.cancel(); var s = this.scrollobj; var func = function(event) {
if (!event.element().match('#' + $(s).identify() + ' *')) {
Event.stopObserving(document, 'mouseover', func); }
}; Event.observe(document, 'mouseover', func); }
}
}; BajaxScroller.prototype = {
reset: function() {
var width = parseFloat(this.scrollobj.down('table').getWidth()); var area = parseFloat(this.scrollobj.up('div').getWidth()); if (width < area) {
this.disable(this.left); this.disable(this.right); return true; } else {
this.disable(this.left); this.enable(this.right); return false; }
},
initialize: function(scrollobj2, left2, right2) {
this.scrollobj = scrollobj2; this.scrollobj.scroller = this; this.direction = ''; this.left = left2.down("img"); this.right = right2.down("img"); this.start = parseFloat(this.scrollobj.getStyle('left') || 0); this.left.observe('mouseover', this.move); this.right.observe('mouseover', this.move); this.left.scroller = this; this.right.scroller = this; this.left.observe('mouseout', this.stop); this.right.observe('mouseout', this.stop); this.disable(this.left); },
move: function(event) {
if (this.scroller.reset()) { return; }
var obj = event.element(); var width = parseFloat(this.scroller.scrollobj.down('table').getWidth()); var area = parseFloat(this.scroller.scrollobj.up('div').getWidth()); var current = parseFloat(this.scroller.scrollobj.getStyle('left') || 0); var scrolled = this.scroller.start - current; var amount = scrolled; if (obj == this.scroller.right) amount = -(width - area - scrolled); if (amount == 0) {
this.scroller.disable(obj); return; }
this.scroller.direction = (obj == this.scroller.right) ? 'right' : 'left'; var dur = .009 * Math.abs(amount); this.scroller.stop(event); this.scroller.scroller = new Effect.MoveBy(this.scroller.scrollobj, 0, amount,
{
duration: dur,
delay: 0.4,
afterFinish: DisableScrollerEvent
}); this.scroller.enable(this.scroller.left); this.scroller.enable(this.scroller.right); },
disable: function(obj) {
if (Prototype.Browser.IE) {
obj.style.filter = 'progid:DXImageTransform.Microsoft.BasicImage(grayScale=1)'; }
new Effect.Opacity(obj, {
duration: 0.5,
transition: Effect.Transitions.linear,
from: obj.getStyle('opacity'),
to: 0.3
}); },
enable: function(obj) {
new Effect.Opacity(obj, {
duration: 0.5,
transition: Effect.Transitions.linear,
from: obj.getStyle('opacity'),
to: 1.0
}); if (Prototype.Browser.IE) {
obj.style.filter = 'progid:DXImageTransform.Microsoft.BasicImage(grayScale=0)'; }
},
stop: function(event) {
var obj = event.element(); if (obj.scroller.scroller) obj.scroller.scroller.cancel(); }
}; function show_promotion_details(obj, id) {
bjx_pop(obj, "/promotion_details.aspx?id=" + id, "", true); }
function toggle_par_section(obj, tbody) {
obj = $(obj); tbody = $(tbody); if (tbody.visible()) {
tbody.hide(); obj.update('+'); }
else {
tbody.show(); obj.update('-'); }
}
var _nav_menu_is_open = false; function HideNavigationPopup(event) {
var el = Event.element(event); if (el && el.up('#category_nav') == null) {
$('category_nav').select('.nav_menu_open').each(function(t) { t.removeClassName('nav_menu_open'); }); Event.stopObserving(document, 'mouseover', HideNavigationPopup); }
}
Event.observe(document, 'dom:loaded', function(event) {
if ($('category_nav') != null) {
var link_index = 0; $('category_nav').select('a.catbutton').each(function(link) {
link_index++; link = $(link); if (link_index > 7) {
link.up('li').addClassName('nav_menu_change_dir'); }
link.up('li').observe('mouseover', function(event) {
var el = Event.element(event); if (el.match('li') || el.match('a.catbutton')) {
link.up('ul').select('li.nav_menu_open').each(function(t) { t.removeClassName('nav_menu_open'); }); link.up('li').addClassName('nav_menu_open'); }
document.observe('mouseover', HideNavigationPopup); }); }); }
if ($('txtSearchText') != null) {
new Ajax.Autocompleter(
'txtSearchText', 'divSearchResultsText', '/ajax/search.aspx',
{
paramName: "q",
updateElement: function(li) {
window.location = $(li).down('a').href; },
minChars: 3
}
); Event.observe('txtSearchText', 'keypress', function(event) {
if (event.keyCode == Event.KEY_RETURN) {
Event.stop(event); if ($("txtSearchText").value != 'Keyword or Item #' && $("txtSearchText").value != '') {
$("txtSearchText").up("form").submit(); }
}
}); }
}); /*
Table of Contents
-----------------
Configuration
Lightbox Class Declaration
- initialize()
- updateImageList()
- start()
- changeImage()
- resizeImageContainer()
- showImage()
- updateDetails()
- updateNav()
- enableKeyboardNav()
- disableKeyboardNav()
- keyboardAction()
- preloadNeighborImages()
- end()
Function Calls
- document.observe()
*/
LightboxOptions = Object.extend({
fileLoadingImage: '/icons/ba/lightbox/loading.gif',
fileBottomNavCloseImage: '/icons/ba/lightbox/closelabel.gif',
overlayOpacity: 0.4,   // controls transparency of shadow overlay
animate: true,         // toggles resizing animations
resizeSpeed: 7,        // controls the speed of the image resizing animations (1=slowest and 10=fastest)
borderSize: 10,         //if you adjust the padding in the CSS, you will need to update this variable
labelImage: "Image",
labelOf: "of"
}, window.LightboxOptions || {}); var Lightbox = Class.create(); Lightbox.prototype = {
imageArray: [],
activeImage: undefined,
initialize: function() {
this.updateImageList(); this.keyboardAction = this.keyboardAction.bindAsEventListener(this); if (LightboxOptions.resizeSpeed > 10) LightboxOptions.resizeSpeed = 10; if (LightboxOptions.resizeSpeed < 1) LightboxOptions.resizeSpeed = 1; this.resizeDuration = LightboxOptions.animate ? ((11 - LightboxOptions.resizeSpeed) * 0.15) : 0; this.overlayDuration = LightboxOptions.animate ? 0.2 : 0;  // shadow fade in/out duration
var size = (LightboxOptions.animate ? 250 : 1) + 'px'; var objBody = $$('body')[0]; objBody.appendChild(Builder.node('div', { id: 'overlay' })); objBody.appendChild(Builder.node('div', { id: 'lightbox' }, [
Builder.node('div', { id: 'imageDataContainer' },
Builder.node('div', { id: 'imageData' }, [
Builder.node('div', { id: 'imageDetails' }, [
Builder.node('span', { id: 'caption' }),
Builder.node('span', { id: 'numberDisplay' })
]),
Builder.node('div', { id: 'bottomNav' },
Builder.node('a', { id: 'bottomNavClose', href: '#' },
Builder.node('img', { src: LightboxOptions.fileBottomNavCloseImage })
)
)
])
),
Builder.node('div', { id: 'outerImageContainer' },
Builder.node('div', { id: 'imageContainer' }, [
Builder.node('img', { id: 'lightboxImage' }),
Builder.node('div', { id: 'hoverNav' }, [
Builder.node('a', { id: 'prevLink', href: '#' }),
Builder.node('a', { id: 'nextLink', href: '#' })
]),
Builder.node('div', { id: 'loading' },
Builder.node('a', { id: 'loadingLink', href: '#' },
Builder.node('img', { src: LightboxOptions.fileLoadingImage })
)
)
])
)
])); $('overlay').hide().observe('click', (function() { this.end(); }).bind(this)); $('lightbox').hide().observe('click', (function(event) { if (event.element().id == 'lightbox') this.end(); }).bind(this)); $('outerImageContainer').setStyle({ width: size, height: size }); $('prevLink').observe('click', (function(event) { event.stop(); this.changeImage(this.activeImage - 1); }).bindAsEventListener(this)); $('nextLink').observe('click', (function(event) { event.stop(); this.changeImage(this.activeImage + 1); }).bindAsEventListener(this)); $('loadingLink').observe('click', (function(event) { event.stop(); this.end(); }).bind(this)); $('bottomNavClose').observe('click', (function(event) { event.stop(); this.end(); }).bind(this)); var th = this; (function() {
var ids =
'overlay lightbox outerImageContainer imageContainer lightboxImage hoverNav prevLink nextLink loading loadingLink ' +
'imageDataContainer imageData imageDetails caption numberDisplay bottomNav bottomNavClose'; $w(ids).each(function(id) { th[id] = $(id); }); }).defer(); },
updateImageList: function() {
this.updateImageList = Prototype.emptyFunction; document.observe('click', (function(event) {
var target = event.findElement('a[rel^=lightbox]') || event.findElement('area[rel^=lightbox]'); if (target) {
event.stop(); this.start(target); }
}).bind(this)); },
start: function(imageLink) {
$$('select', 'object', 'embed').each(function(node) { node.style.visibility = 'hidden' }); var arrayPageSize = this.getPageSize(); $('overlay').setStyle({ width: arrayPageSize[0] + 'px', height: arrayPageSize[1] + 'px' }); new Effect.Appear(this.overlay, { duration: this.overlayDuration, from: 0.0, to: LightboxOptions.overlayOpacity }); this.imageArray = []; var imageNum = 0; if ((imageLink.rel == 'lightbox')) {
this.imageArray.push([imageLink.href, imageLink.title]); } else {
this.imageArray =
$$(imageLink.tagName + '[href][rel="' + imageLink.rel + '"]').
collect(function(anchor) { return [anchor.href, anchor.title]; }).
uniq(); while (this.imageArray[imageNum][0] != imageLink.href) { imageNum++; }
}
var arrayPageScroll = document.viewport.getScrollOffsets(); var lightboxTop = arrayPageScroll[1] + (document.viewport.getHeight() / 10); var lightboxLeft = arrayPageScroll[0]; this.lightbox.setStyle({ top: lightboxTop + 'px', left: lightboxLeft + 'px' }).show(); this.changeImage(imageNum); },
changeImage: function(imageNum) {
this.activeImage = imageNum; // update global var
if (LightboxOptions.animate) this.loading.show(); this.lightboxImage.hide(); this.hoverNav.hide(); this.prevLink.hide(); this.nextLink.hide(); this.imageDataContainer.setStyle({ opacity: .0001 }); this.numberDisplay.hide(); var imgPreloader = new Image(); imgPreloader.onload = (function() {
this.lightboxImage.src = this.imageArray[this.activeImage][0]; this.resizeImageContainer(imgPreloader.width, imgPreloader.height); }).bind(this); imgPreloader.src = this.imageArray[this.activeImage][0]; },
resizeImageContainer: function(imgWidth, imgHeight) {
var widthCurrent = this.outerImageContainer.getWidth(); var heightCurrent = this.outerImageContainer.getHeight(); var widthNew = (imgWidth + LightboxOptions.borderSize * 2); var heightNew = (imgHeight + LightboxOptions.borderSize * 2); var xScale = (widthNew / widthCurrent) * 100; var yScale = (heightNew / heightCurrent) * 100; var wDiff = widthCurrent - widthNew; var hDiff = heightCurrent - heightNew; if (hDiff != 0) new Effect.Scale(this.outerImageContainer, yScale, { scaleX: false, duration: this.resizeDuration, queue: 'front' }); if (wDiff != 0) new Effect.Scale(this.outerImageContainer, xScale, { scaleY: false, duration: this.resizeDuration, delay: this.resizeDuration }); var timeout = 0; if ((hDiff == 0) && (wDiff == 0)) {
timeout = 100; if (Prototype.Browser.IE) timeout = 250; }
(function() {
this.prevLink.setStyle({ height: imgHeight + 'px' }); this.nextLink.setStyle({ height: imgHeight + 'px' }); this.imageDataContainer.setStyle({ width: widthNew + 'px' }); this.showImage(); }).bind(this).delay(timeout / 1000); },
showImage: function() {
this.loading.hide(); new Effect.Appear(this.lightboxImage, {
duration: this.resizeDuration,
queue: 'end',
afterFinish: (function() { this.updateDetails(); }).bind(this)
}); this.preloadNeighborImages(); },
updateDetails: function() {
if (this.imageArray[this.activeImage][1] != "") {
this.caption.update(this.imageArray[this.activeImage][1]).show(); }
if (this.imageArray.length > 1) {
this.numberDisplay.update(LightboxOptions.labelImage + ' ' + (this.activeImage + 1) + ' ' + LightboxOptions.labelOf + '  ' + this.imageArray.length).show(); }
new Effect.Parallel(
[
/* new Effect.SlideDown(this.imageDataContainer, { sync: true, duration: this.resizeDuration, from: 0.0, to: 1.0 }), */
new Effect.Appear(this.imageDataContainer, { sync: true, duration: this.resizeDuration })
],
{
duration: this.resizeDuration,
afterFinish: (function() {
var arrayPageSize = this.getPageSize(); this.overlay.setStyle({ height: arrayPageSize[1] + 'px' }); this.updateNav(); }).bind(this)
}
); },
updateNav: function() {
this.hoverNav.show(); if (this.activeImage > 0) this.prevLink.show(); if (this.activeImage < (this.imageArray.length - 1)) this.nextLink.show(); this.enableKeyboardNav(); },
enableKeyboardNav: function() {
document.observe('keydown', this.keyboardAction); },
disableKeyboardNav: function() {
document.stopObserving('keydown', this.keyboardAction); },
keyboardAction: function(event) {
var keycode = event.keyCode; var escapeKey; if (event.DOM_VK_ESCAPE) {  // mozilla
escapeKey = event.DOM_VK_ESCAPE; } else { // ie
escapeKey = 27; }
var key = String.fromCharCode(keycode).toLowerCase(); if (key.match(/x|o|c/) || (keycode == escapeKey)) { // close lightbox
this.end(); } else if ((key == 'p') || (keycode == 37)) { // display previous image
if (this.activeImage != 0) {
this.disableKeyboardNav(); this.changeImage(this.activeImage - 1); }
} else if ((key == 'n') || (keycode == 39)) { // display next image
if (this.activeImage != (this.imageArray.length - 1)) {
this.disableKeyboardNav(); this.changeImage(this.activeImage + 1); }
}
},
preloadNeighborImages: function() {
var preloadNextImage, preloadPrevImage; if (this.imageArray.length > this.activeImage + 1) {
preloadNextImage = new Image(); preloadNextImage.src = this.imageArray[this.activeImage + 1][0]; }
if (this.activeImage > 0) {
preloadPrevImage = new Image(); preloadPrevImage.src = this.imageArray[this.activeImage - 1][0]; }
},
end: function() {
this.disableKeyboardNav(); this.lightbox.hide(); new Effect.Fade(this.overlay, { duration: this.overlayDuration }); $$('select', 'object', 'embed').each(function(node) { node.style.visibility = 'visible' }); },
getPageSize: function() {
var xScroll, yScroll; if (window.innerHeight && window.scrollMaxY) {
xScroll = window.innerWidth + window.scrollMaxX; yScroll = window.innerHeight + window.scrollMaxY; } else if (document.body.scrollHeight > document.body.offsetHeight) { // all but Explorer Mac
xScroll = document.body.scrollWidth; yScroll = document.body.scrollHeight; } else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
xScroll = document.body.offsetWidth; yScroll = document.body.offsetHeight; }
var windowWidth, windowHeight; if (self.innerHeight) {	// all except Explorer
if (document.documentElement.clientWidth) {
windowWidth = document.documentElement.clientWidth; } else {
windowWidth = self.innerWidth; }
windowHeight = self.innerHeight; } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
windowWidth = document.documentElement.clientWidth; windowHeight = document.documentElement.clientHeight; } else if (document.body) { // other Explorers
windowWidth = document.body.clientWidth; windowHeight = document.body.clientHeight; }
if (yScroll < windowHeight) {
pageHeight = windowHeight; } else {
pageHeight = yScroll; }
if (xScroll < windowWidth) {
pageWidth = xScroll; } else {
pageWidth = windowWidth; }
return [pageWidth, pageHeight]; }
}
document.observe('dom:loaded', function() { new Lightbox(); }); /*
(function() {
var prevonload = window.onload; var newonload = function() {
}; if (typeof window.onload != 'function') {
window.onload = newonload; } else {
window.onload = function() {
prevonload(); newonload(); }; }
})(); document.observe('dom:loaded', function(event) {
for (var i = 0; i < _baload.length; i++) {
window._baload[i](); }
window._baload = function() {
push: function(f) {
f(); }
}; }); */
