/**
*/
var superInit=init;
init = function() {
superInit();
$(".btn-close").on("click", function() {
showOverlay(null);
});
$("#tab-gallery").on("click", function() {
toggleOverlay("gallery");
});
$("#tab-combination").on("click", function() {
$("#currentRoomScene>img").attr("src", $("#image-box a>img").attr("src"));
toggleOverlay("combination");
});
$("#tab-favorite").on("click", function() {
toggleOverlay("favorite");
});
$("#tab-rotation, #tab-share").on("click", function (){
$(this).toggleClass("selected");
});
$("#tab-email").on("click", function() {
toggleOverlay("email");
});
$(document).on("click", "#tab-myroom", function() {
$("#fileupload").click();
});
$("#tab-search").on("click", function() {
$("#search-box-toolbar input").val("");
$("#search-box-toolbar").toggle();
if($("#search-box-toolbar").is(":visible")) {
$(this).addClass("selected");
} else {
$(this).removeClass("selected");
}
});
$("#search-item").on("click", function() {
onSearchItem();
toggleSubOverlay("search");
});
$("#search-box input[name=searchItem]").on("keypress", function(e) {
if(e.keyCode == 13) {
onSearchItem();
toggleSubOverlay("search");
return false;
}
});
$("#search-box-toolbar input").on("keypress", function(e) {
if(e.keyCode == 13) {
$("#search-box input[name=searchItem]").val($(this).val());
$("#search-item").click();
$("#search-box-toolbar").toggle();
}
});
$("#search-item-toolbar").on("click", function(e) {
$("#search-box input[name=searchItem]").val($("#search-box-toolbar input").val());
$("#search-item").click();
$("#search-box-toolbar").toggle();
});
$("#tab-split-view").on("click", function() {
if(isSplitPane()) {
$("#surface-anchors > span").css("z-index", "0");
exitSplitPane();
} else {
if(isZoomAndPan()) exitZoomAndPan();
$("#surface-anchors > span").css("z-index", "1");
requestSplitPane();
}
});
$("#split-pane-favorites .add-bookmark").on("click", function() {
$("#save").click();
return false;
});
if(hasFullscreenAPI()) {
$(".btn-fullscreen").on("click", function() {
if(isFullscreen()) exitFullscreen();
else requestFullscreen();
});
} else $(".btn-fullscreen").remove();
$(document).on("click", ".btn-show", function() {
showOverlay(null);
if(isZoomAndPan()) exitZoomAndPan();
});
$(document).on("click", "#surface-anchors .current-item", function() {
var parents=$(this).parentsUntil("#surface-anchors");
var anchorElement=parents[parents.length-1];
var value=anchorElement.getAttribute("data-value");
var slotIndex=$("#surface-anchors .current-item").index(this);
selectSceneObject(value, anchorElement, slotIndex);
return false;
});
$(document).on("click", "#content-box", function() {
if(getSelectedOverlay()!=null) showOverlay(null);
});
$(document).on("click mousemove touch", function () {
$("#surface-anchors").children().show();
armTimer();
});
$(document).on("click", ".scene-img", function() {
var parents=$(this).parentsUntil(".favorites");
var favorite=parents[parents.length-1].parentNode;
$(".btnShow", favorite).click();
});
$("#select-dimension").on("change", function() {
filterValueChanged("size");
});
$("#select-bevel").on("change", function() {
filterValueChanged("bevel");
});
$("#tab-facebook").on("click", function() {
var postLink = encodeURIComponent($("#permalink").attr("href"));
window.open('http://www.facebook.com/sharer/sharer.php?u='+postLink+'&p[locale]=en_US&locale=en_US',
'facebook_share',
'height=320, width=560, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, directories=no, status=no');
});
$("#tab-vk").on("click", function() {
var postLink = encodeURIComponent($("#permalink").attr("href"));
window.open('https://vk.com/?'+postLink,
'vk_share',
'height=320, width=560, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, directories=no, status=no');
});
updatePermalink();
updateDownloadLink();
$("#fileupload").fileupload({
dataType: "json",
dropZone: $("#overlay-gallery"),
done: function (e, data) {
var interior=null;
var userId=null;
$.each(data.result.files, function (index, file) {
if(file.error) {
alert(uploadErrorMessage(file.error));
} else {
interior=file.interior;
userId=file.userId;
}
});
if(interior) {
onMyRoomAdded(interior, userId);
}
},
fail: function (e, data) {
alert(uploadErrorMessage("upload_failed"));
},
submit: function (e, data) {
if(checkSessionTimeout()) return false;
ZoneFx.showWaitBox();
$("#overlay-gallery .progress").css("display", "block");
},
always: function (e, data) {
ZoneFx.hideWaitBox();
$("#overlay-gallery .progress").css("display", "none");
},
progress: function (e, data) {
var progress = parseInt(data.loaded / data.total * 100, 10);
$("#overlay-gallery .progress .bar").css("width", progress + "%");
$("#overlay-gallery .progress .bar-text").text("Uploading ... " + Math.round(progress) + "%");
if(progress===100) $("#overlay-gallery .progress .bar-text").text("Processing ... ");
}
});
setTimeout(function() {
}, 2000);
}
function uploadErrorMessage(errorCode) {
var span=$("#"+errorCode);
return span.length>0 ? span.text() : errorCode;
}
/**
*/
function initHoverAccordion() {
}
var selectedColor=null;
function setSelectedColor(color) {
selectedColor=color;
$("#color-selector .framePanel.selected").removeClass("selected");
if(color) $('#color-selector .colorPane[name="'+color+'"]').parent().addClass("selected");
}
/**
*/
function initColorButtons() {
$("#color-selector").addColorPicker({
clickCallback: function(c) {
onColorPicker(c);
},
colors: [
"#ffffff", "#fffafa", "#f5fffa", "#f0fff0", "#f0ffff", "#f0f8ff",
"#f8f8ff", "#f5f5f5", "#fff5ee", "#fffaf0", "#fffff0", "#f8f8e8",
"#fdf5e6", "#fcf2e4", "#fcf5ee", "#fff0f5", "#ffeee7", "#80766e",
"#91867e", "#9a9482", "#b2ada0", "#cac7be", "#d9d5d2", "#e1dedb",
"#f5f1de", "#eeeada", "#e3dcc0", "#ded0b4", "#dacaaa", "#ddc283",
"#d2be96", "#ceb88c", "#dbad72", "#cc9b4c", "#000000", "#212930",
"#414b56", "#606a74", "#868f98", "#a8adb4", "#c3c8cd", "#d2d6d9",
"#cbd1d4", "#d3d3d3", "#c0c0c0", "#a9a9a9", "#999999", "#808080",
"#696969", "#5a5a5a", "#404040", "#5a2729", "#763931", "#91554d",
"#855723", "#965e00", "#a5714e", "#b88868", "#b8a59c", "#d4b7a4",
"#c5b693", "#c3a97f", "#bca326", "#bb8900", "#ac7f28", "#926c00",
"#644a1e", "#362814", "#b44010", "#d34a13", "#f04600", "#ff6900",
"#ff8c00", "#ffa500", "#ffc34d", "#ffe696", "#fffacd", "#ffff92",
"#ffff00", "#f6ef77", "#f4ee00", "#fee23e", "#ffd319", "#eabd00",
"#daa520", "#8b0000", "#b22222", "#ca002a", "#dc143c", "#ff0000",
"#ff6666", "#f08080", "#ff9999", "#f1b3b3", "#ffcccc", "#ffb6c1",
"#ff96b9", "#ff71b5", "#ff54a7", "#ff087f", "#c71585", "#9c225d",
"#800080", "#8b008b", "#9600cd", "#a442dc", "#e400e0", "#ee82ee",
"#dda0dd", "#d8bfd8", "#e6e6fa", "#c3afeb", "#9370db", "#6a5acd",
"#5416b4", "#4b0082", "#483d8b", "#433b67", "#605885", "#191970",
"#0000b0", "#0000ff", "#004bff", "#4169e1", "#3081ee", "#6495ed",
"#6ec1f8", "#aeeaff", "#cdf2ff", "#bbe0ff", "#bad5f0", "#9bc2e9",
"#90add0", "#7095c2", "#4682b4", "#29568f", "#00668a", "#0097cc",
"#00b6f6", "#34ccff", "#52dbff", "#00ffff", "#6effff", "#a8ffff",
"#d9ffff", "#c7cbe6", "#8cfaca", "#40e0d0", "#48d1cc", "#2e54b1",
"#2e54b1", "#008b8b", "#008080", "#004800", "#006400", "#008000",
"#12ad2a", "#32cd32", "#12e603", "#90f500", "#adff2f", "#d5ff97",
"#d0e6d7", "#aad1b7", "#9acd32", "#83af2b", "#6b8e23", "#808000",
"#556b2f", "#356244"
]
});
}
/**
*/
function initializeModules() {
initializeProductListScrollable();
initializeGalleryScrollable();
updateVariationsFilter();
adjustImageSizeToDevice();
}
function initializeSelectedItem(selectItem, selectElement) {
var selectedFilter = $("option:selected", selectElement).text();
if(selectedFilter.length) {
var selectText=$(".select-text", selectElement);
$(selectText).text(selectedFilter);
if (selectedFilter != $("option:first", selectElement).text()) {
$("span", selectItem).text(selectedFilter);
$(selectText).css("color", "#53565a");
selectItem.show();
} else {
$(selectText).css("color", "#a8a9ab");
selectItem.hide();
}
}
if($(".selected-filter:visible", "#selected-filters-box").length > 0) {
$(".btn-reset-all-filter", "#selected-filters-box").show();
} else {
$(".btn-reset-all-filter", "#selected-filters-box").hide();
}
}
var overlays={
"gallery": ["#overlay-gallery", "#btn-gallery", {
onShow: function() {
initializeGalleryScrollable();
if(isZoomAndPan()) exitZoomAndPan();
}}],
"combination": ["#overlay-combination", "#tab-combination", {
onShow: function() {
if(isZoomAndPan()) exitZoomAndPan();
}}],
"favorite": ["#overlay-favorites", "#tab-favorite", {
onShow: function() {
if(isZoomAndPan()) exitZoomAndPan();
}}],
"product": ["#overlay-products", ""],
"color": ["#overlay-color", ""],
"email": ["#overlay-send-to", "", {
onBeforeShow: function() {
$("#send-to").show();
$("#send-to-error").hide();
},
onShow: function(event) {
$("input[name=recipients]").focus();
},
onHide: function(event) {
$("input[name=recipients]").val("");
$("input[name=from]").val("");
$("input#frm-favorite-permlink").val("");
$("#tbl-send-to-input span").hide();
}}],
}
function showOverlay(overlayName) {
if(overlayName!=null && overlays[overlayName]==null) {
alert("unknown overlay '"+overlayName+"'");
return;
}
$("#modal-overlay-background").remove();
for(name in overlays) {
if(name==overlayName) {
var callbacks=overlays[name].length>2 ? overlays[name][2] : null;
if(callbacks && callbacks.onBeforeShow) callbacks.onBeforeShow();
$(overlays[name][0]).show();
$(overlays[name][1]).addClass("selected");
if(callbacks && callbacks.onShow) callbacks.onShow();
} else {
if($(overlays[name][0]).is(":visible")) {
$(overlays[name][0]).hide();
$(overlays[name][1]).removeClass("selected");
var callbacks=overlays[name].length>2 ? overlays[name][2] : null;
if(callbacks && callbacks.onHide) callbacks.onHide();
}
}
}
var overlay=overlays[overlayName];
if(overlay) {
var modalBackground=$('
');
modalBackground.insertBefore(overlay[0]);
$(modalBackground).on("click", function() {
showOverlay(null);
});
}
}
function getSelectedOverlay() {
for(name in overlays) {
if($(overlays[name][0]).is(":visible")) return name;
}
return null;
}
function toggleOverlay(overlayName) {
if(overlays[overlayName]!=null && $(overlays[overlayName][0]).is(":visible")) overlayName=null;
showOverlay(overlayName);
}
var subOverlays={
"search": ["#overlay-search", "#tab-search", {
onShow: function() {
$("#search-box input[name=searchItem]").focus();
},
onHide: function() {
$("#no-items-found-box").hide();
$("#items-found-box").hide();
$("#search-box input[name=searchItem]").val("");
}}]
}
function showSubOverlay(overlayName) {
if(overlayName!=null && subOverlays[overlayName]==null) {
alert("unknown overlay '"+overlayName+"'");
return;
}
for(name in subOverlays) {
if(name==overlayName) {
var callbacks=subOverlays[name].length>2 ? subOverlays[name][2] : null;
if(callbacks && callbacks.onBeforeShow) callbacks.onBeforeShow();
$(subOverlays[name][0]).show();
$(subOverlays[name][1]).addClass("selected");
if(callbacks && callbacks.onShow) callbacks.onShow();
} else {
if($(subOverlays[name][0]).is(":visible")) {
$(subOverlays[name][0]).hide();
$(subOverlays[name][1]).removeClass("selected");
var callbacks=subOverlays[name].length>2 ? subOverlays[name][2] : null;
if(callbacks && callbacks.onHide) callbacks.onHide();
}
}
}
$("#modal-overlay-background-sub").remove();
var overlay=subOverlays[overlayName];
if(overlay) {
var modalBackground=$('');
modalBackground.insertBefore(overlay[0]);
$(modalBackground).on("click", function() {
showSubOverlay(null);
});
}
}
function toggleSubOverlay(overlayName) {
if(subOverlays[overlayName]!=null && $(subOverlays[overlayName][0]).is(":visible")) overlayName=null;
showSubOverlay(overlayName);
}
/**
*/
function isCentered() {
return false;
}
/**
*/
function updateDownloadLink() {
var url=$("#image-box a>img").attr("src");
url+="&download=true";
url=url.replace(new RegExp("maxwidth=\\d*&maxheight=\\d*&"), "");
$("#tab-download-hd").attr("href", url);
}
/**
*/
function isDifferentProductListContent(zoneHolder, html) {
var test=zoneHolder.cloneNode(false);
test.innerHTML = html;
var newContent=$("li", test);
var oldContent=$("li", zoneHolder);
if(newContent.length!=oldContent.length) return true;
var re = /]*>/gi;
for(var i=0; i this is "data-src"
container: document.getElementById("product-list")
});
$("#aazone\\.productListZ").addClass("items");
initListProducts=true;
} else lazyLoaderProductList.update();
scrollToSelectedItem("#product-list", true);
}
function scrollToSelectedItem(listSelector, vertical) {
var selected=$("li.selected", listSelector+" .items:first");
var posLeft, posTop;
if(selected.length!=0) {
posLeft=selected.position().left;
posTop=selected.position().top;
} else {
posLeft=0;
posTop=0;
}
if(!vertical) $(listSelector).scrollLeft(posLeft);
else $(listSelector).scrollTop(posTop);
}
/**
*/
function scrollListByPage(list, vertical, numPages) {
var pageSize = !vertical ? list.width() : list.height();
var max=!vertical ? list[0].scrollWidth : list[0].scrollHeight;
var pos=!vertical ? list.scrollLeft() : list.scrollTop();
var newPos=pos+numPages*pageSize;
if(newPos<0) newPos=0;
else if(newPos>max) {
newPos=max-pageSize;
}
if(newPos!=pos) {
if(!vertical) list.animate({scrollLeft: newPos}, 400, "swing");
else list.animate({scrollTop: newPos}, 400, "swing");
}
}
function initializeGalleryScrollable(isWindowResize) {
$("#aazone\\.roomsZ").addClass("items");
if ($("#gallery-box").css("display")=="grid") return;
var parentW=$("#gallery-box").width();
var remaining=parentW-$("#category").outerWidth(true);
remaining-=1;
$("#gallery").width(remaining);
layoutGalleryItems($("#carousel .img-item"), !isWindowResize);
}
function layoutGalleryItems(items, animate) {
var ww=$("#carousel").width();
var wh=$("#carousel").height();
var iw=128;
var ih=128;
var numItems=items.length;
var placements=[
{ // 1 item
rows: 2, cols: 2,
cells: [{x: 0}]
},
{ // 2 items
rows: 2, cols: 1,
cells: [{x: 0, w: 0.9},
{x: 0.1, y: 1, w: 0.9}]
},
{ // 2 items
rows: 1, cols: 2,
cells: [{x: 0, h: 0.9}, {x: 1, y: 0.1, h: 0.9}]
},
{ // 3 items
rows: 2, cols: 2,
cells: [{x: 0, h: 2}, {},
{x: 1, y: 1}]
},
{ // 4 items
rows: 2, cols: 2,
cells: [{x: 0, h: 1.25}, {h: 0.75},
{x: 0, y: 1.25, h: 0.75}, {y: 0.75, h: 1.25}]
},
{ // 5 items
rows: 3, cols: 2,
cells: [{x: 0}, {},
{x: 0, y: 1, h: 2}, {},
{x: 1, y: 2}]
},
{ // 5 items
rows: 2, cols: 3,
cells: [{x: 0, h: 2}, {}, {},
{x: 1, y: 1}, {}]
},
{ // 6 items
rows: 3, cols: 3,
cells: [{x: 0, w:2}, {h: 2},
{x: 0, y: 1, h: 2}, {},
{x: 1, y: 2}, {}]
},
{ // 7 items
rows: 3, cols: 3,
cells: [{x: 0}, {}, {},
{x: 0, y: 1, h: 2}, {w: 2},
{x: 1, y: 2}, {}]
},
{ // 8 items
rows: 3, cols: 3,
cells: [{x: 0}, {h: 2}, {},
{x: 0, y: 1}, {x: 2},
{x: 0, y: 2}, {}, {}]
}
];
var ar=ww/wh;
var placement=null;
var aspectRatioDiff=0;
var tmpDiff;
for(var i=0; inumItems) break;
}
if(placement==null) {
var cols=Math.max(1, Math.round(Math.sqrt(numItems)*ar));
var rows=Math.ceil(numItems/cols);
var cells=[];
var i=0;
for(var y=0; ycw) {
self.addClass("portrait");
ioX=-(ch-cw)/2;
}
else {
self.removeClass("portrait");
ioY=-(cw-ch)/2;
}
$(".carousel", self).css({top: (ioY)+"px", left: (ioX)+"px"});
$("a:first", self).css({width: (cw-margin)+"px", height: (ch-margin)+"px"});
if(animate) self.hide();
self.css({left: left+"px", top: top+"px", width: cw+"px", height: ch+"px"});
if(animate) {
self.show(300);
}
});
}
function adjustToChildrenSize(element, vertical) {
var list=element;
var li=list.children();
var self = this;
if (li.length > 0) {
var wh = 0;
li.each(function() {
wh += !vertical ? $(this).outerWidth() : $(this).outerHeight();
});
list.css(!vertical ? "width" : "height", wh + "px");
}
}
var imageCompleteAction;
var ACTION_UPDATE_SCENE = 2;
/**
*/
function updateSceneObjectShapes() {
imageCompleteAction=ACTION_UPDATE_SCENE;
}
/**
*/
var zoom_super_setNewImageLoaded=setNewImageLoaded;
setNewImageLoaded = function() {
zoom_super_setNewImageLoaded();
if(imageCompleteAction==0) return;
var action=imageCompleteAction;
imageCompleteAction=0;
rescaleSurfaceAnchors(true);
}
function checkObjectFit() {
const testImg = new Image();
const supportsObjectFit = "object-fit" in testImg.style;
if(supportsObjectFit) return;
$(document).ready(function() {
$("#image-box").addClass("no-objectfit");
$("#split-pane-right").addClass("no-objectfit");
$("head").append('');
});
}
checkObjectFit();
function rescaleSurfaceAnchors(newAnchors, newContent) {
var iw=$("#image-box").width();
var ih=$("#image-box").height();
var supportsObjectFit=!$("#image-box").hasClass("no-objectfit");
if(supportsObjectFit) {
var img=$("#image-box img");
var imgW=img.width();
var imgH=img.height();
var scaleX=imgW>0 ? imgW/imgmapSourceWidth : 1.0;
var scaleY=imgH>0 ? imgH/imgmapSourceHeight : 1.0;
var offset={};
if(scaleY0 ? imw/imgmapSourceWidth : 1.0;
var offset=$("#image-box img").offset();
}
var anchors=$("#surface-anchors>span");
anchors.each(function() {
var self=$(this);
if(newAnchors) updateSurfaceAnchorContent(this);
else if(newContent) {
var changes=updateSurfaceAnchorContent(this, true);
if(changes>=0) return;
}
var w=self.outerWidth();
var h=self.outerHeight();
var x=offset.left + imageScaleToContain * this.getAttribute("data-x") - w/2;
if(x<0) x=0;
if(x+w>=iw) x=iw-w;
var y=offset.top + imageScaleToContain * this.getAttribute("data-y") - h/2;
if(y<120) y=120;
if(y+h>=ih) y=ih-h;
if(newAnchors) {
var startx=x+w/2 < iw/2 ? 0 : iw-w;
self.css({left: startx+"px", top: y+"px"});
self.show();
armTimer();
if($("#gallery").is(':visible')) self.css({left: x+"px", top: y+"px"});
else self.animate({left: x+"px"}, 300);
}
else self.css({left: x+"px", top: y+"px"});
});
}
function adjustSurfaceAnchorsToContent() {
rescaleSurfaceAnchors(false, true);
}
function findSceneObject(anchorElement) {
var value=anchorElement.getAttribute("data-value");
var objects=$("#dyn-scene-objects li");
var sceneObject=value").parent().html();
$(".item-box", self).addClass(sceneObject.className);
return changes;
}
var hideAnchorsTimer = null;
function armTimer() {
var ms=2000;
clearTimeout(hideAnchorsTimer);
var anchors=$("#surface-anchors").children();
hideAnchorsTimer = setTimeout(function() {
anchors.fadeOut();
}, ms);
}
window.onresize = function() {
rescaleSurfaceAnchors();
initializeGalleryScrollable(true);
if(isZoomAndPan()) updateVisibleAreaIndicator();
if(isSplitPane()) moveSplitPaneDivider($("#split-pane-divider"));
}
var _browser_ios = navigator.userAgent.toLowerCase().match(/(iphone|ipod|ipad)/);
var _browser_android = navigator.userAgent.toLowerCase().match(/android ([\w.]+)/);
if(_browser_ios || (_browser_android && parseFloat(_browser_android[1])>=4.0)) conditionalLoadJS("css-transition");
function initCSSAnimation() {
if(_browser_ios) {
$("head").append('');
}
jqueryEnhancedAnimate(jQuery, jQuery.fn.animate, jQuery.fn.stop);
jQuery.addTransition("#image-box *");
jQuery.addTransition("#product-list .items, #color-selector .items");
}
function openPopup(url) {
var parameter = "menubar=no,toolbar=no,status=no,scrollbars=yes,resizable=yes,top=0,width=1024,height=640";
info = window.open(url, "_blank", parameter);
info.focus();
}
function updateVariationsFilter() {
var sizes=[];
var bevels=[];
var variations=$("#variations>li");
variations.each(function(i) {
var self=$(this);
var size=self.attr("data-size");
if($.inArray(size, sizes) == -1) sizes.push(size);
var bevel=self.attr("data-bevel");
if($.inArray(bevel, bevels) == -1) bevels.push(bevel);
});
sizes.sort();
bevels.sort();
showVariation(sizes, "#select-dimension");
showVariation(bevels, "#select-bevel");
var sizeHTML="";
for(var i=0; i"+sizes[i]+"";
}
var dimensions=$("#select-dimension");
dimensions.html(sizeHTML);
var bevelHTML="";
for(var i=0; i"+bevels[i]+"";
}
var bevelsSelect=$("#select-bevel");
bevelsSelect.html(bevelHTML);
setFilterValues();
}
function showVariation(elementArray, selectElement) {
var select = $(selectElement, "#customisation-box");
if (elementArray.length > 1) {
$(select).show();
$(select).parent().find(".icon-chevron").show();
} else {
$(select).hide();
$(select).parent().find(".icon-chevron").hide();
}
}
/**
*/
function setFilterValues() {
var item=$("#variations>li.selected");
var size=item.attr("data-size");
$("#select-dimension").val(size);
$("#select-dimension").parent().find(".select-text").text(size);
var bevel=item.attr("data-bevel");
$("#select-bevel").val(bevel);
$("#select-bevel").parent().find(".select-text").text(bevel);
}
/**
* used instead of all filters
*/
function filter(filterToUse) {
var values={};
values["size"]=$("#select-dimension").val();
values["bevel"]=$("#select-bevel").val();
var query="#variations>li";
$.each(values, function(key, value) {
if(value) {
if(!filterToUse || key==filterToUse) query+="[data-"+key+"='"+value+"']";
}
});
var item=$(query);
$("#variations>li.selected").removeClass("selected");
if(item.length>0) $(item[0]).addClass("selected");
return item.length>0 ? item[0] : null;
}
/**
*/
function filterValueChanged(filterName) {
var selected=filter();
if(selected) onVariation($(selected).attr("data-key"));
else {
selected=filter(filterName);
if(selected) onVariation($(selected).attr("data-key"));
}
setFilterValues();
}
/**
*/
function hasLocalStorage() {
try {
if (!window.localStorage) return false;
} catch(e) {
return false;
}
return true;
}
function restoreFavorites() {
if (!hasLocalStorage()) return;
if($("#aazone\\.favoritesZ li").length==0) {
var stored=window.localStorage.getItem("favorites");
if(stored) {
syncFavorites(stored);
}
} else updateStoredFavorites();
}
function updateStoredFavorites() {
if (!hasLocalStorage()) return;
if($("#aazone\\.favoritesZ li").length==0) window.localStorage.removeItem("favorites");
else {
window.localStorage.setItem("favorites", jQuery.trim($("#favoritesQ").text()));
}
}
function displaySearchResults(zoneHolder, html) {
var tmpZoneHolder=zoneHolder.cloneNode(false);
tmpZoneHolder.innerHTML = html;
var searchResults=$(".search-results", tmpZoneHolder);
if(searchResults.length==0) {
return;
}
var li=$(">li", searchResults);
if(li.length==0) {
$("#no-items-found-box").show();
$("#items-found-box").hide();
var searchKeyWord=$(".search-keyword", tmpZoneHolder).data("keyword");
} else {
$("#no-items-found-box").hide();
$("#items-found-box").show();
var list=$("");
$("#search-results-list").empty().append(list);
li.each(function() {
var that=$(this);
var item=$(''+that.html()+''+
''+that.attr("data-descr")+'
');
$("a", item).click(function() {
onItemFromSearch(that.attr("data-key"));
});
list.append(item);
});
}
}
/**
*/
function requestFullscreen() {
var docElm = document.documentElement;
if (docElm.requestFullscreen) {
docElm.requestFullscreen();
} else if (docElm.mozRequestFullScreen) {
docElm.mozRequestFullScreen();
} else if (docElm.webkitRequestFullScreen) {
docElm.webkitRequestFullScreen();
}
$("#fullscreen-in-box").css("display", "none");
$("#fullscreen-out-box").css("display", "block");
}
function exitFullscreen() {
if (document.exitFullscreen) {
document.exitFullscreen();
} else if (document.mozCancelFullScreen) {
document.mozCancelFullScreen();
} else if (document.webkitCancelFullScreen) {
document.webkitCancelFullScreen();
}
$("#fullscreen-in-box").css("display", "block");
$("#fullscreen-out-box").css("display", "none");
}
function isFullscreen() {
return document.fullscreen || document.mozFullScreen || document.webkitIsFullScreen;
}
function hasFullscreenAPI() {
var docElm = document.documentElement;
return docElm.requestFullscreen || docElm.mozRequestFullScreen || docElm.webkitRequestFullScreen;
}
/**
*/
function adjustImageSizeToDevice(html) {
if(html) {
if(screen.width<=1200) {
html=insertIntoUrl(html, "/image?", "imaxsize=1024x1024&");
}
html=html.replace("data-src", "src");
} else {
var img=$("#image-box a>img");
var src=img.attr("data-src");
if(src) {
if(screen.width<=1200) {
src=insertIntoUrl(src, "/image?", "imaxsize=1024x1024&");
}
img.removeAttr("data-src");
img.attr("src", src);
}
}
return html;
}
/**
*/
function insertIntoUrl(src, substr, s) {
if(substr.indexOf("?", substr.length - 1) !== -1) {
substr=substr.substr(0, substr.length - 1) + "(;[^\\?]+)?\\?";
src=src.replace(new RegExp(substr), "$&"+s);
} else {
src=src.replace(substr, substr+s);
}
return src;
}
function toggleZoom() {
if(!isZoomAndPan()) {
showOverlay(null);
if(isSplitPane()) exitSplitPane();
requestZoomAndPan();
} else exitZoomAndPan();
}
function isZoomAndPan() {
return !$("#zoom-and-pan-detail").is(":empty");
}
function requestZoomAndPan() {
var url=$("#image-box a>img").attr("src");
url=url.replace(new RegExp("imaxsize=\\d*x\\d*&"), "");
url=url.replace(new RegExp("maxwidth=\\d*&maxheight=\\d*&"), "");
var zoomAndPanDetail=$("#zoom-and-pan-detail");
zoomAndPanDetail.html("");
var detailImg=$("img", zoomAndPanDetail);
ZoneFx.showWaitBox();
detailImg.one("load", function() {
ZoneFx.hideWaitBox();
var zoomAndPan=$("#zoom-and-pan");
zoomAndPan.css({opacity: 0, background: "inherit"});
zoomAndPan.show();
zoomAndPan.animate({opacity: 1}, 750, function() {
zoomAndPan.css({background: ""});
});
var iw=detailImg.width();
var ih=detailImg.height();
var zoomAndPanNavigator=$("#zoom-and-pan-navigator");
var w=zoomAndPanNavigator.width();
var s=w/iw;
var h=ih*s;
zoomAndPanNavigator.css("height", h+"px");
var vw=Math.min(s*zoomAndPanDetail.width(), zoomAndPanNavigator.width());
var vh=Math.min(s*zoomAndPanDetail.height(), zoomAndPanNavigator.height());
var vx=s*zoomAndPanDetail.scrollLeft();
var vy=s*zoomAndPanDetail.scrollTop();
zoomAndPanNavigator.html("");
var visibleArea=$("#visible-area");
visibleArea.data("scale", s);
var scrollToMouseHandler=function(e){
var o=$(this).offset();
var x = e.pageX - o.left;
var y = e.pageY - o.top;
x-=visibleArea.width()/2;
y-=visibleArea.height()/2;
zoomAndPanDetail.scrollLeft(x/s);
zoomAndPanDetail.scrollTop(y/s);
return false;
};
zoomAndPanNavigator.click(scrollToMouseHandler);
zoomAndPanNavigator.mousedown(function() {
var that=$(this);
that.mousemove(scrollToMouseHandler);
$(document).mouseup(function(e) {
that.unbind("mousemove");
$(document).unbind(e);
});
return false;
});
zoomAndPanDetail.scroll(updateVisibleAreaIndicator);
$("#tab-download-hd").css("visibility","visible");
});
$("#tab-zoom").addClass("selected");
$("#tab-rotation, #tab-search").removeClass("selected");
$("#tab-zoom .icon-font").removeClass("icon-zoom-in").addClass("icon-zoom-out");
$("#search-box-toolbar").hide();
}
function exitZoomAndPan() {
var zoomAndPanDetail=$("#zoom-and-pan-detail");
zoomAndPanDetail.unbind("scroll");
zoomAndPanDetail.empty();
var zoomAndPanNavigator=$("#zoom-and-pan-navigator");
zoomAndPanNavigator.unbind("click").unbind("mousedown");
zoomAndPanNavigator.empty();
$("#zoom-and-pan").hide();
$("#tab-zoom").removeClass("selected");
$("#tab-zoom .icon-font").addClass("icon-zoom-in").removeClass("icon-zoom-out");
$("#tab-download-hd").css("visibility","hidden");
}
function updateVisibleAreaIndicator() {
var visibleArea=$("#visible-area");
var s=visibleArea.data("scale");
var zoomAndPanDetail=$("#zoom-and-pan-detail");
var zoomAndPanNavigator=$("#zoom-and-pan-navigator");
var vw=Math.min(s*zoomAndPanDetail.width(), zoomAndPanNavigator.width());
var vh=Math.min(s*zoomAndPanDetail.height(), zoomAndPanNavigator.height());
var vx=s*zoomAndPanDetail.scrollLeft();
var vy=s*zoomAndPanDetail.scrollTop();
visibleArea.css({width: vw+"px", height: vh+"px", left: vx+"px", top: vy+"px"});
}
function isSplitPane() {
return $("#split-pane").is(":visible");
}
function requestSplitPane() {
$("#split-pane-right div>img").attr("src", $("#image-box a:last>img").attr("src"));
setupSplitPaneFavorites();
var splitPane=$("#split-pane");
splitPane.show();
var divider=$("#split-pane-divider");
moveSplitPaneDivider(divider);
var resizeMouseHandler=function(e) {
moveSplitPaneDivider(divider, e.pageX);
return false;
};
divider.on("mousedown.splitpane", function() {
var that=$(this);
$(document).on("mousemove", resizeMouseHandler);
$(document).on("mouseup", function(e) {
$(document).off("mousemove", resizeMouseHandler);
$(document).off(e);
});
return false;
});
$("#content-box").on("touchmove.splitpane", "#split-pane-right, #image-box, #split-pane-divider-left, #split-pane-divider-right", function(e) {
if(getSelectedOverlay()==null) {
var x = e.originalEvent.changedTouches[0].pageX;
moveSplitPaneDivider($("#split-pane-divider"), x);
return false;
}
});
$("#tab-split-view").addClass("selected");
}
function moveSplitPaneDivider(divider, x) {
var right=$("#split-pane-right");
var w=right.width();
var h=right.height();
if(typeof x !== "undefined") {
divider.attr("data-x", (x/w));
} else {
x=divider.attr("data-x");
if(typeof x === "undefined") x=0.5;
else x=parseFloat(x);
x=x*w;
}
var dw=divider.width();
x-=dw/2;
if(x<0) x=0;
else if(x+dw>w) x=w-dw;
divider.css("left", x+"px");
right.css("clip", "rect(0 "+w+"px "+h+"px "+x+"px)");
}
function exitSplitPane() {
var divider=$("#split-pane-divider");
divider.off("mousedown.splitpane");
$("#content-box").off("touchmove.splitpane");
$("#split-pane").hide();
$("#tab-split-view").removeClass("selected");
}
/**
*/
function getInterior(favorite) {
var url=$(".scene-img img", favorite).attr("src");
var interior=url.match(new RegExp("interior=(.*)&"));
return interior ? interior[1] : null;
}
/**
* item is included that contains the specified DOM Element. Useful
* for checking if a certain favorite refers to the same interior
* item as currently displayed.
*/
function getFavoritesForSplitView(favoriteDescendantElement) {
var currentImg=$("#image-box a:last>img").attr("src");
var id=currentImg.match(new RegExp("[?&]id=(.*)"));
id=id[1];
var matching=[];
$("#favorites-wrapper .favorites").each(function() {
if(favoriteDescendantElement && $(this).has(favoriteDescendantElement).length==0) return;
var interior=getInterior(this);
if(id.indexOf(interior)==0) matching.push(this);
});
return matching;
}
function setupSplitPaneFavorites() {
var favorites=getFavoritesForSplitView();
var favoritesHolder=$("#split-pane-favorites");
$(".favorite", favoritesHolder).remove();
var noFavorites=$(".no-favorites", favoritesHolder);
if(favorites.length==0) noFavorites.show();
else noFavorites.hide();
jQuery.each(favorites, function() {
var that=this;
var url=$(".scene-img img", that).attr("src");
var f=$('');
favoritesHolder.append(f);
f.on("click", function(e) {
var x=e.pageX - $(this).offset().left;
x=x/$(this).width();
if(x<0.5) $(".btn-show", that).click();
else setRightPaneImage($("img", this).attr("src"));
});
});
}
function setRightPaneImage(src) {
src=src.replace(new RegExp("imaxsize=\\d*x\\d*&"), "");
var url=$("#image-box a>img").attr("src");
var imaxsize=url.match(new RegExp("imaxsize=\\d*x\\d*&"));
if(imaxsize) {
src=insertIntoUrl(src, "image?", imaxsize);
}
var img=$("#split-pane-right div>img").first();
var imgFade=img.clone(true);
imgFade.insertAfter(img);
var imgLoadHelper=new Image();
$(imgLoadHelper).one("load", function() {
img.attr("src", src);
imgFade.animate({opacity: 0}, 250, function() {
imgFade.remove();
});
});
imgLoadHelper.src=src;
}
/**
*/
function viewImagesInLightbox(urls, selected) {
var json=[];
var selectedDummyLink;
for(var i=0; i");
if(i==selected) selectedDummyLink=dummyLink;
var absoluteURL=dummyLink[0].href;
json.push({url: absoluteURL})
}
selectedDummyLink.lightbox({displayTitle: false,
fileLoadingImage: contextRelative(jQuery.fn.lightbox.defaults.fileLoadingImage),
fileBottomNavCloseImage: contextRelative('scripts/base/jquery-lightbox/images/close.gif'),
disableNavbarLinks: true,
disablePreloadNeighborImages: true,
jsonData: json
}, true);
$("#image-details").hide();
$("#prev-link, #next-link").removeAttr("title");
}