1270 lines
46 KiB
JavaScript
1270 lines
46 KiB
JavaScript
var WebStore = {
|
|
|
|
created: false,
|
|
dialog: null,
|
|
itemsDiv: null,
|
|
tabList: null,
|
|
selectedItem: null,
|
|
selectedCategory: null,
|
|
selectedSubCategory: null,
|
|
selectedTab: null,
|
|
loadingCategory: false,
|
|
previewItemPointer: 0,
|
|
previewItems: null,
|
|
originalBg: null,
|
|
storeOpened: false,
|
|
backgroundPreviewWarning: false,
|
|
localization: null,
|
|
|
|
open: function(tab) {
|
|
if (!WebStore.created) {
|
|
WebStore._create();
|
|
WebStore._loadMainContent(tab);
|
|
} else {
|
|
WebStore._selectTab(tab);
|
|
}
|
|
|
|
WebStore.originalBg = $("mypage-bg").className;
|
|
|
|
WebStore.dialog.show();
|
|
Overlay.show();
|
|
Dialog.moveDialogToCenter(WebStore.dialog);
|
|
},
|
|
|
|
close: function() {
|
|
WebStore.dialog.style.left = "-1500px";
|
|
WebStore.dialog.hide();
|
|
Overlay.hide();
|
|
|
|
WebStore.Inventory.newItems = [];
|
|
WebStore.Inventory.updateNewItemCount(0);
|
|
|
|
$("mypage-bg").className = WebStore.originalBg;
|
|
|
|
WebStore.loadingCategory = false;
|
|
WebStore.Inventory.loadingCategory = false;
|
|
},
|
|
|
|
openSubCategory: function(subCategoryId, categoryId, force, productId) {
|
|
if ((!WebStore.loadingCategory && subCategoryId != WebStore.selectedSubCategory) || force) {
|
|
WebStore.loadingCategory = true;
|
|
WebStore._resetState();
|
|
Element.wait($("webstore-items"));
|
|
WebStore._loadSubCategory(categoryId, subCategoryId, productId);
|
|
}
|
|
},
|
|
|
|
closeConfirmation: function(e) {
|
|
if (e) {
|
|
Event.stop(e);
|
|
}
|
|
if ($("webstore-confirm")) {
|
|
Element.remove($("webstore-confirm"));
|
|
Overlay.move("9000");
|
|
}
|
|
},
|
|
|
|
showWebStoreDivs: function() {
|
|
WebStore.Inventory.hideInventoryDivs();
|
|
$("webstore-categories-container").style.display = "block";
|
|
$("webstore-content-container").style.display = "block";
|
|
$("webstore-items-container").style.display = "block";
|
|
$("webstore-preview-container").style.display = "block";
|
|
},
|
|
|
|
hideWebStoreDivs: function() {
|
|
$("webstore-categories-container").style.display = "none";
|
|
$("webstore-content-container").style.display = "none";
|
|
$("webstore-items-container").style.display = "none";
|
|
$("webstore-preview-container").style.display = "none";
|
|
},
|
|
|
|
_create: function() {
|
|
this.dialog = Dialog.createDialog("purchase-main-dialog", false, false, -1500, 0, function(e) {
|
|
if (e) { Event.stop(e); }
|
|
WebStore.close();
|
|
}, Builder.node("div", [ Builder.node("ul", { id:"webstore-tabs" }) ]).innerHTML);
|
|
new Draggable(this.dialog, { handle:'webstore-tabs', starteffect:Prototype.emptyFunction, endeffect:Prototype.emptyFunction, zindex:9100 });
|
|
Dialog.setAsWaitDialog(WebStore.dialog);
|
|
},
|
|
|
|
_loadMainContent: function(tab) {
|
|
if (tab == "webstore-inventory") {
|
|
WebStore.Inventory.load();
|
|
} else {
|
|
new Ajax.Request(
|
|
habboReqPath + "/myhabbo/store/main", {
|
|
method: "post",
|
|
onComplete: function(req, json) {
|
|
if (WebStore._checkResponse(req.responseText)) {
|
|
Dialog.setDialogBody(WebStore.dialog, req.responseText);
|
|
WebStore.created = true;
|
|
WebStore.storeOpened = true;
|
|
WebStore.MenuBar.init();
|
|
WebStore.Inventory.initMenu();
|
|
|
|
WebStore.localization = json[0];
|
|
WebStore._buildTabs();
|
|
WebStore._selectTab("webstore-store");
|
|
|
|
if (WebStore.MenuBar.selectedMainCategory) {
|
|
WebStore._setContentClassName(WebStore.MenuBar.selectedMainCategory.id.split("-").last());
|
|
}
|
|
|
|
if (json[1] && json[1].length > 0) {
|
|
WebStore.previewItems = json[1];
|
|
WebStore._showPreview();
|
|
|
|
var el = $A($("webstore-item-list").getElementsByTagName("li")).first();
|
|
if (el) { WebStore._selectItem(el); }
|
|
}
|
|
|
|
WebStore._setEventHandlers();
|
|
}
|
|
}
|
|
}
|
|
);
|
|
}
|
|
},
|
|
|
|
_setEventHandlers: function() {
|
|
if ($("webstore-items")) {
|
|
$("webstore-items").onclick = WebStore._handleItemClick.bindAsEventListener(this);
|
|
}
|
|
|
|
if ($("webstore-preview")) {
|
|
$("webstore-preview").onclick = WebStore._handlePreviewClick.bindAsEventListener(this);
|
|
}
|
|
|
|
if ($("webstore-close")) {
|
|
$("webstore-close").onclick = function(e) { Event.stop(e); WebStore.close(); }.bindAsEventListener(this);
|
|
}
|
|
|
|
if (WebStore.tabList) {
|
|
WebStore.tabList.onclick = WebStore._handleTabClick.bindAsEventListener(this);
|
|
}
|
|
|
|
WebStore.Inventory._setEventHandlers();
|
|
},
|
|
|
|
_handleItemClick: function(e) {
|
|
var el = Event.findElement(e, "li");
|
|
if (el && el.id && el != WebStore.selectedItem) {
|
|
WebStore._selectItem(el);
|
|
WebStore._loadPreview(el.id.substring(el.id.lastIndexOf("-")+1));
|
|
}
|
|
Event.stop(e);
|
|
},
|
|
|
|
_selectItem: function(el) {
|
|
try {
|
|
if (!Element.hasClassName(el, "selected")) {
|
|
Element.removeClassName(WebStore.selectedItem, "selected");
|
|
Element.addClassName(el, "selected");
|
|
WebStore.selectedItem = el;
|
|
}
|
|
} catch (ex) {}
|
|
},
|
|
|
|
_handlePreviewClick: function(e) {
|
|
var el = Event.findElement(e, "a");
|
|
if (el && el.id) {
|
|
try {
|
|
if (el.id == "webstore-purchase-disabled") {
|
|
Event.stop(e);
|
|
} else if (el.id == "webstore-purchase") {
|
|
Event.stop(e);
|
|
WebStore._purchaseConfirm(WebStore.selectedItem.id.split("-").last());
|
|
} else if (el.id == "webstore-add") {
|
|
Event.stop(e);
|
|
} else if (el.id == "webstore-preview-bg") {
|
|
Event.stop(e);
|
|
|
|
if (!WebStore.backgroundPreviewWarning) {
|
|
var warning = Dialog.createDialog("webstore-warning", "", 9003);
|
|
Dialog.setAsWaitDialog(warning);
|
|
Overlay.move(9002);
|
|
Dialog.moveDialogToCenter(warning);
|
|
Dialog.makeDialogDraggable(warning);
|
|
new Ajax.Request(habboReqPath + "/myhabbo/store/background_warning", {
|
|
method: "post",
|
|
onComplete: function(req) {
|
|
if (WebStore._checkResponse(req.responseText)) {
|
|
Dialog.setDialogBody(warning, req.responseText);
|
|
WebStore.backgroundPreviewWarning = true;
|
|
|
|
Event.observe($("webstore-warning-ok"), "click", function(e) {
|
|
Event.stop(e);
|
|
Element.remove(warning);
|
|
Overlay.move(9000);
|
|
WebStore._previewBg();
|
|
});
|
|
}
|
|
}
|
|
}
|
|
);
|
|
} else {
|
|
WebStore._previewBg();
|
|
}
|
|
}
|
|
} catch (ex) {}
|
|
}
|
|
},
|
|
|
|
_previewBg: function() {
|
|
var overlay = $("overlay");
|
|
overlay.style.backgroundColor = "transparent";
|
|
$("mypage-bg").className = WebStore.previewItems[WebStore.previewItemPointer].bgCssClass;
|
|
window.setTimeout(function() {
|
|
if (WebStore.dialog.style.left != "-1500px") {
|
|
overlay.style.backgroundColor = "black";
|
|
}
|
|
}, 2500);
|
|
},
|
|
|
|
_handleTabClick: function(e) {
|
|
Event.stop(e);
|
|
if (!WebStore.loadingCategory && !WebStore.Inventory.loadingCategory) {
|
|
var el = Event.findElement(e, "a");
|
|
if (el && el.parentNode && el.parentNode.id) {
|
|
if (el.parentNode.id != WebStore.selectedTab) {
|
|
WebStore._selectTab(el.parentNode.id);
|
|
}
|
|
}
|
|
}
|
|
},
|
|
|
|
_buildTabs: function() {
|
|
WebStore.tabList = $("webstore-tabs");
|
|
WebStore.tabList.appendChild(Builder.node("li", {id:"webstore-inventory"}, [
|
|
Builder.node("a", {href:"#"}, [ document.createTextNode(WebStore.localization[0] + " "), Builder.node("span", {id:"webstore-inventory-new"}) ]),
|
|
Builder.node("span", {className:"tab-spacer"})
|
|
]));
|
|
WebStore.tabList.appendChild(Builder.node("li", {id:"webstore-store"}, [
|
|
Builder.node("a", {href:"#"}, WebStore.localization[1]),
|
|
Builder.node("span", {className:"tab-spacer"})
|
|
]));
|
|
},
|
|
|
|
_selectTab: function(id) {
|
|
if (WebStore.selectedTab) { $(WebStore.selectedTab).className = ""; }
|
|
$(id).className = "selected";
|
|
WebStore.selectedTab = id;
|
|
var header = $$("#purchase-main-dialog h3 span").first();
|
|
|
|
if (id == "webstore-store") {
|
|
if (header && WebStore.localization) { header.innerHTML = WebStore.localization[1]; }
|
|
|
|
var type = "_webstore";
|
|
if (WebStore.MenuBar.selectedMainCategory != null) {
|
|
type = WebStore.MenuBar.selectedMainCategory.id.split("-").last();
|
|
}
|
|
WebStore.Inventory.hideInventoryDivs();
|
|
|
|
WebStore._setDialogSize(type, function() {
|
|
if (!WebStore.storeOpened) {
|
|
WebStore._loadSubCategory(WebStore.selectedCategory, WebStore.selectedSubCategory);
|
|
WebStore.storeOpened = true;
|
|
}
|
|
|
|
WebStore.showWebStoreDivs();
|
|
});
|
|
} else {
|
|
if (header && WebStore.localization) { header.innerHTML = WebStore.localization[0]; }
|
|
|
|
WebStore.hideWebStoreDivs();
|
|
|
|
WebStore._setDialogSize("_inventory", function() {
|
|
WebStore.Inventory.showInventoryDivs();
|
|
|
|
if (!WebStore.Inventory.inventoryOpened) {
|
|
WebStore.Inventory.loadCategory("stickers");
|
|
WebStore.Inventory.inventoryOpened = true;
|
|
}
|
|
|
|
// reset counter
|
|
WebStore.Inventory.newItems = [];
|
|
WebStore.Inventory.updateNewItemCount();
|
|
|
|
WebStore.Inventory.reloadIfNeeded();
|
|
});
|
|
}
|
|
},
|
|
|
|
_loadSubCategory: function(categoryId, subCategoryId, productId) {
|
|
var query = { categoryId: categoryId };
|
|
if (!!subCategoryId) {
|
|
query.subCategoryId = subCategoryId;
|
|
}
|
|
new Ajax.Request(
|
|
habboReqPath + "/myhabbo/store/items", {
|
|
method: "post", parameters: query,
|
|
onComplete: function(req, json) {
|
|
if (WebStore._checkResponse(req.responseText)) {
|
|
$("webstore-items").innerHTML = req.responseText;
|
|
WebStore.selectedCategory = categoryId;
|
|
WebStore.selectedSubCategory = subCategoryId;
|
|
WebStore.loadingCategory = false;
|
|
|
|
var itemSelected = false;
|
|
var productEls = $A($("webstore-item-list").getElementsByTagName("li"));
|
|
if (productId) {
|
|
productEls.each(function(el) {
|
|
if (el.id) {
|
|
var id = el.id.substring(el.id.lastIndexOf("-")+1);
|
|
if (id == productId) {
|
|
WebStore._selectItem(el);
|
|
WebStore._loadPreview(id);
|
|
itemSelected = true;
|
|
throw $break;
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
if (!itemSelected) {
|
|
var el = productEls.first();
|
|
if (el && el.id) {
|
|
WebStore._selectItem(el);
|
|
WebStore._loadPreview(el.id.substring(el.id.lastIndexOf("-")+1));
|
|
}
|
|
}
|
|
|
|
// make sure inventory is hidden
|
|
WebStore.Inventory.hideInventoryDivs();
|
|
}
|
|
}
|
|
}
|
|
);
|
|
},
|
|
|
|
_resetState: function() {
|
|
WebStore.selectedItem = null;
|
|
WebStore.selectedCategory = null;
|
|
WebStore.selectedSubCategory = null;
|
|
WebStore._showDefaultPreview();
|
|
|
|
},
|
|
|
|
_loadPreview: function(productId) {
|
|
WebStore._clearPreview();
|
|
Element.wait($("webstore-preview"));
|
|
WebStore._showPreview();
|
|
new Ajax.Request(
|
|
habboReqPath + "/myhabbo/store/preview", {
|
|
method: "post", parameters: { "productId": productId, "subCategoryId": WebStore.selectedSubCategory },
|
|
onComplete: function(req, json) {
|
|
if (WebStore._checkResponse(req.responseText)) {
|
|
WebStore.previewItems = json;
|
|
WebStore._showPreview(req.responseText);
|
|
|
|
// make sure inventory is hidden
|
|
WebStore.Inventory.hideInventoryDivs();
|
|
}
|
|
}
|
|
}
|
|
);
|
|
},
|
|
|
|
_showPreview: function(previewHtml) {
|
|
var previewDiv = $("webstore-preview");
|
|
if (previewHtml) { previewDiv.innerHTML = previewHtml };
|
|
|
|
if (WebStore.previewItems) {
|
|
var preview = $("webstore-preview-box").appendChild(Builder.node("div", { id: "webstore-preview-pre" }));
|
|
|
|
if (WebStore.previewItems.length == 1 && WebStore.previewItems[0].itemCount > 1) {
|
|
preview.appendChild(Builder.node("div", { id: "webstore-preview-count", className: "webstore-item-count" }));
|
|
} else if (WebStore.previewItems.length > 1) {
|
|
preview.appendChild(Builder.node("div", { id: "webstore-preview-count", className: "webstore-item-count" }));
|
|
preview.appendChild(Builder.node("div", { id: "webstore-preview-page" }));
|
|
Event.observe(preview.appendChild(Builder.node("div", { id: "webstore-preview-next" })), "click", function(e) { WebStore._nextPreviewItem(); });
|
|
Event.observe(preview.appendChild(Builder.node("div", { id: "webstore-preview-prev" })), "click", function(e) { WebStore._previousPreviewItem(); });
|
|
}
|
|
|
|
WebStore._setPreviewItem();
|
|
}
|
|
|
|
previewDiv.show();
|
|
},
|
|
|
|
_showDefaultPreview: function() {
|
|
WebStore._clearPreview();
|
|
var previewDiv = $("webstore-preview");
|
|
previewDiv.hide();
|
|
$("webstore-preview-default").show();
|
|
previewDiv.innerHTML = "";
|
|
},
|
|
|
|
_setContentClassName: function(className) {
|
|
$("webstore-content-container").className = className;
|
|
},
|
|
|
|
_nextPreviewItem: function() {
|
|
WebStore.previewItemPointer++;
|
|
if (WebStore.previewItemPointer >= WebStore.previewItems.length) {
|
|
WebStore.previewItemPointer = 0;
|
|
}
|
|
WebStore._setPreviewItem();
|
|
},
|
|
|
|
_previousPreviewItem: function() {
|
|
WebStore.previewItemPointer--;
|
|
if (WebStore.previewItemPointer < 0) {
|
|
WebStore.previewItemPointer = WebStore.previewItems.length - 1;
|
|
}
|
|
WebStore._setPreviewItem();
|
|
},
|
|
|
|
_setPreviewItem: function() {
|
|
var currItem = WebStore.previewItems[WebStore.previewItemPointer];
|
|
var pre = $("webstore-preview-pre");
|
|
pre.className = currItem.previewCssClass;
|
|
pre.title = currItem.titleKey;
|
|
if ($("webstore-preview-count")) {
|
|
$("webstore-preview-count").innerHTML = "<div>x" + currItem.itemCount + "</div>";
|
|
}
|
|
if ($("webstore-preview-page")) {
|
|
$("webstore-preview-page").innerHTML = (WebStore.previewItemPointer + 1) + "/" + WebStore.previewItems.length;
|
|
}
|
|
|
|
if (currItem.imageUrl && currItem.imageUrl != "") {
|
|
pre.appendChild(Builder.node("div", { "class": "preview-image", "style": "background-image: url(" + habboImagerUrl + currItem.imageUrl +")"}));
|
|
}
|
|
if (currItem.bgCssClass && currItem.bgCssClass != "") {
|
|
if (!$("webstore-preview-bgpreview")) {
|
|
pre.appendChild(Builder.node("div", { id: "webstore-preview-bgpreview" }, [
|
|
Builder.node("a", { href:"#", className:"toolbutton", id: "webstore-preview-bg" }, [
|
|
Builder.node("span", { id:"webstore-preview-bg-"+currItem.bgCssClass }, $("webstore-preview-bg-text").innerHTML)
|
|
])
|
|
]));
|
|
}
|
|
} else if ($("webstore-preview-bgpreview")) {
|
|
Element.remove($("webstore-preview-bgpreview"));
|
|
}
|
|
},
|
|
|
|
_clearPreview: function() {
|
|
WebStore.previewItems = null;
|
|
WebStore.previewItemPointer = 0;
|
|
var previewBox = $("webstore-preview-box");
|
|
if (previewBox) {
|
|
previewBox.innerHTML = "";
|
|
}
|
|
},
|
|
|
|
_purchaseConfirm: function(productId) {
|
|
Overlay.move("9002");
|
|
var dialog = Dialog.createDialog("webstore-confirm", "", "9003", -1500, 0, WebStore.closeConfirmation);
|
|
Dialog.makeDialogDraggable(dialog);
|
|
Dialog.setAsWaitDialog(dialog);
|
|
Dialog.moveDialogToCenter(dialog);
|
|
|
|
new Ajax.Request(habboReqPath + "/myhabbo/store/purchase_confirm", {
|
|
method: "post", parameters: { "productId" : productId, "subCategoryId" : WebStore.selectedSubCategory },
|
|
onComplete: function(req, json) {
|
|
if (WebStore._checkResponse(req.responseText)) {
|
|
Dialog.setDialogBody(dialog, req.responseText);
|
|
if ($("webstore-confirm-submit")) {
|
|
Event.observe($("webstore-confirm-submit"), "click", function(e) {
|
|
Event.stop(e);
|
|
WebStore._purchase(WebStore.selectedItem.id.split("-").last(), dialog);
|
|
});
|
|
}
|
|
Event.observe($("webstore-confirm-cancel"), "click", WebStore.closeConfirmation);
|
|
}
|
|
}
|
|
});
|
|
},
|
|
|
|
_purchase: function(productId, dialog) {
|
|
Dialog.setAsWaitDialog(dialog);
|
|
var type = WebStore.MenuBar.selectedMainCategory.id.split("-").last();
|
|
new Ajax.Request(habboReqPath + "/myhabbo/store/purchase_" + type, {
|
|
method: "post", parameters: { task: "purchase", selectedId: productId }, onComplete: function(req, json) {
|
|
if (WebStore._checkResponse(req.responseText)) {
|
|
if (req.responseText.strip() != "OK") {
|
|
Dialog.setDialogBody(dialog, req.responseText);
|
|
Event.observe($("webstore-confirm-cancel"), "click", WebStore.closeConfirmation);
|
|
} else {
|
|
WebStore.Inventory.newItems.push(json);
|
|
WebStore.Inventory.updateNewItemCount();
|
|
Overlay.move("9000");
|
|
Element.remove(dialog);
|
|
|
|
// refresh both webstore and inventory (if needed)
|
|
WebStore.openSubCategory(WebStore.selectedSubCategory, WebStore.selectedCategory, true, productId);
|
|
if (WebStore.Inventory.inventoryOpened) {
|
|
WebStore.Inventory.selectCategory(WebStore.MenuBar.selectedMainCategory.id.split("-").last());
|
|
WebStore.Inventory._clearPreview();
|
|
WebStore.Inventory.waitingForReload = true;
|
|
WebStore.Inventory.lastId = json;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
});
|
|
},
|
|
|
|
_getCategoryOpener: function(mainCategoryType) {
|
|
if (mainCategoryType == "avatar") {
|
|
return function(subcategoryId, mainCategoryId, subcategoryEl) {
|
|
if (!WebStore.loadingCategory) {
|
|
WebStore.loadingCategory = true;
|
|
WebStore._resetState();
|
|
Element.wait($("webstore-items"));
|
|
WebStore.StickerEditor.open();
|
|
}
|
|
};
|
|
} else {
|
|
return function(subcategoryId, mainCategoryId, subcategoryEl) {
|
|
if (!WebStore.loadingCategory) {
|
|
Element.wait($("webstore-items"));
|
|
WebStore._resetState();
|
|
WebStore.MenuBar.changeSubcategory(subcategoryId, mainCategoryId, subcategoryEl);
|
|
WebStore.loadingCategory = true;
|
|
}
|
|
};
|
|
}
|
|
},
|
|
|
|
_setDialogSize: function(mainCategoryType, afterFinishCallback) {
|
|
if (mainCategoryType == "avatar") {
|
|
new Effect.Transform([
|
|
{"#purchase-main-dialog-body":"height: 399px"},
|
|
{"#webstore-items":"height: 381px"},
|
|
{"#webstore-categories":"height: 381px"}
|
|
], { afterFinish: afterFinishCallback || Prototype.emptyFunction }).play();
|
|
$("webstore-close-container").style.display = "none";
|
|
} else {
|
|
new Effect.Transform([
|
|
{"#purchase-main-dialog-body":"height: 324px"},
|
|
{"#webstore-items":"height: 306px"},
|
|
{"#webstore-categories":"height: 306px"}
|
|
], { afterFinish: afterFinishCallback || Prototype.emptyFunction }).play();
|
|
$("webstore-close-container").style.display = "block";
|
|
}
|
|
},
|
|
|
|
_checkResponse: function(responseText) {
|
|
if (responseText.strip() == "REFRESH") {
|
|
WebStore.NoteEditor.close();
|
|
WebStore.close();
|
|
Overlay.show();
|
|
window.location.replace(window.location.href);
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
};
|
|
|
|
WebStore.MenuBar = {
|
|
|
|
selectedMainCategory: null,
|
|
selectedSubcategory: null,
|
|
|
|
init: function(){
|
|
WebStore.MenuBar._setEventHandler();
|
|
|
|
WebStore.MenuBar.selectedMainCategory = $("webstore-categories").select(".webstore-selected-main").first();
|
|
if (WebStore.MenuBar.selectedMainCategory) WebStore.selectedCategory = WebStore.MenuBar.selectedMainCategory.id.split("-")[1];
|
|
WebStore.MenuBar.selectedSubcategory = $(WebStore.MenuBar.selectedMainCategory).select(".subcategory-selected").first();
|
|
if (WebStore.MenuBar.selectedSubcategory) WebStore.selectedSubCategory = WebStore.MenuBar.selectedSubcategory.id.split("-")[2];
|
|
},
|
|
|
|
changeMainCategory: function(mainCategoryId, mainCategoryEl, mainCategoryType) {
|
|
if (!WebStore.loadingCategory) {
|
|
if (mainCategoryEl == WebStore.MenuBar.selectedMainCategory) {
|
|
if (WebStore.MenuBar.selectedMainCategory != null) {
|
|
if (Element.hasClassName(WebStore.MenuBar.selectedMainCategory, "selected-main-category")) {
|
|
WebStore.MenuBar._closeMainCategory(mainCategoryId, mainCategoryEl);
|
|
} else if (Element.hasClassName(WebStore.MenuBar.selectedMainCategory, "main-category")) {
|
|
WebStore.MenuBar._setMainCategory(mainCategoryId, mainCategoryEl);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
Overlay.show(); // re-display overlay if coming from avatar category
|
|
|
|
var oldMainCat = WebStore.MenuBar.selectedMainCategory;
|
|
var switched = false;
|
|
if (oldMainCat != null && oldMainCat != mainCategoryEl) {
|
|
WebStore.MenuBar._unselectSelectedMainCategory();
|
|
WebStore.MenuBar._unselectSelectedSubcategory();
|
|
switched = true;
|
|
}
|
|
WebStore.MenuBar._setMainCategory(mainCategoryId, mainCategoryEl);
|
|
|
|
if (switched) {
|
|
WebStore._showDefaultPreview();
|
|
Element.wait($("webstore-items"));
|
|
WebStore._setDialogSize(mainCategoryType, function() {
|
|
var subcategoryEl = mainCategoryEl.select(".subcategory").first();
|
|
if (subcategoryEl && subcategoryEl.id) {
|
|
var subcategoryId = subcategoryEl.id.split("-")[2];
|
|
WebStore._getCategoryOpener(mainCategoryType)(subcategoryId, mainCategoryId, subcategoryEl);
|
|
} else {
|
|
WebStore.selectedSubCategory = null;
|
|
WebStore.MenuBar.selectedSubcategory = null;
|
|
}
|
|
});
|
|
}
|
|
}
|
|
},
|
|
|
|
changeSubcategory: function(subcategoryId, mainCategoryId, subcategoryEl) {
|
|
WebStore.MenuBar._unselectSelectedSubcategory();
|
|
WebStore.MenuBar.selectedSubcategory = subcategoryEl;
|
|
subcategoryEl.className = "subcategory-selected";
|
|
|
|
WebStore.openSubCategory(subcategoryId, mainCategoryId);
|
|
},
|
|
|
|
_setEventHandler: function() {
|
|
$("webstore-categories").onclick = WebStore.MenuBar._handleCategoryClick.bindAsEventListener(this);
|
|
},
|
|
|
|
_handleCategoryClick: function(e) {
|
|
Event.stop(e);
|
|
if (!WebStore.loadingCategory) {
|
|
var el = Event.findElement(e, "li");
|
|
if (el && el.id) {
|
|
if (el.id.indexOf("maincategory-") == 0) {
|
|
var temp = el.id.split("-");
|
|
WebStore.MenuBar.changeMainCategory(temp[1], el, temp[2]);
|
|
WebStore._setContentClassName(temp[2]);
|
|
} else if (el.id.indexOf("subcategory-") == 0) {
|
|
var temp = el.id.split("-");
|
|
WebStore.MenuBar.changeSubcategory(temp[2], temp[1], el);
|
|
WebStore._setContentClassName(temp[3]);
|
|
}
|
|
}
|
|
}
|
|
},
|
|
|
|
_setMainCategory: function(mainCategoryId, mainCategoryEl){
|
|
mainCategoryEl.className = "selected-" + mainCategoryEl.className;
|
|
if (mainCategoryEl.className.indexOf("no-subcategories") == -1) {
|
|
Effect.SlideDown($("main-category-items-" + mainCategoryId), { duration: 0.2 });
|
|
}
|
|
WebStore.MenuBar.selectedMainCategory = mainCategoryEl;
|
|
},
|
|
|
|
_hideSubcategories: function(){
|
|
$$(".purchase-subcategory-list").each(function (el) { Element.hide(el); });
|
|
},
|
|
|
|
_closeMainCategory: function(mainCategoryId, mainCategoryEl) {
|
|
if (WebStore.MenuBar.selectedSubcategory != null &&
|
|
Element.hasClassName(WebStore.MenuBar.selectedMainCategory, "selected-main-category")) {
|
|
Effect.SlideUp("main-category-items-" + mainCategoryId, { duration: 0.2 });
|
|
}
|
|
if (WebStore.MenuBar.selectedSubcategory != mainCategoryEl) {
|
|
WebStore.MenuBar._unselectSelectedMainCategory();
|
|
}
|
|
},
|
|
|
|
_unselectSelectedSubcategory: function() {
|
|
if (WebStore.MenuBar.selectedSubcategory) {
|
|
WebStore.MenuBar.selectedSubcategory.className = "subcategory";
|
|
}
|
|
},
|
|
|
|
_unselectSelectedMainCategory: function() {
|
|
if (WebStore.MenuBar.selectedMainCategory != null) {
|
|
if (Element.hasClassName(WebStore.MenuBar.selectedMainCategory, "selected-main-category-no-subcategories")) {
|
|
WebStore.MenuBar.selectedMainCategory.className = "main-category-no-subcategories";
|
|
} else if (Element.hasClassName(WebStore.MenuBar.selectedMainCategory, "selected-main-category")) {
|
|
WebStore.MenuBar.selectedMainCategory.className = "main-category";
|
|
}
|
|
}
|
|
WebStore.MenuBar._hideSubcategories();
|
|
}
|
|
};
|
|
|
|
WebStore.Inventory = {
|
|
|
|
newItems: [],
|
|
inventoryOpened: false,
|
|
selectedItem: null,
|
|
selectedCategory: null,
|
|
loadingCategory: false,
|
|
previewItem: null,
|
|
waitingForReload: false,
|
|
lastId: 0,
|
|
|
|
updateNewItemCount: function() {
|
|
var newDiv = $("webstore-inventory-new");
|
|
if (newDiv) {
|
|
var itemCount = WebStore.Inventory.newItems.length;
|
|
if (itemCount > 0) {
|
|
newDiv.innerHTML = " (" + itemCount + ")";
|
|
newDiv.className = "new";
|
|
} else {
|
|
newDiv.innerHTML = "";
|
|
newDiv.className = "";
|
|
}
|
|
}
|
|
},
|
|
|
|
load: function() {
|
|
new Ajax.Request(
|
|
habboReqPath + "/myhabbo/store/inventory", {
|
|
method: "post", parameters: { type: "stickers" },
|
|
onComplete: function(req, json) {
|
|
if (WebStore._checkResponse(req.responseText)) {
|
|
Dialog.setDialogBody(WebStore.dialog, req.responseText);
|
|
WebStore.created = true;
|
|
WebStore.Inventory.inventoryOpened = true;
|
|
WebStore.MenuBar.init();
|
|
WebStore.Inventory.initMenu();
|
|
|
|
WebStore.localization = json[0];
|
|
WebStore._buildTabs();
|
|
WebStore._selectTab("webstore-inventory");
|
|
|
|
WebStore.Inventory.previewItem = json[1];
|
|
WebStore.Inventory._showPreview();
|
|
|
|
var el = $A($("inventory-item-list").getElementsByTagName("li")).first();
|
|
if (el) { WebStore.Inventory._selectItem(el); }
|
|
|
|
WebStore._setEventHandlers();
|
|
}
|
|
}
|
|
}
|
|
);
|
|
},
|
|
|
|
initMenu: function() {
|
|
$("inventory-categories").onclick = WebStore.Inventory._handleCategoryClick.bindAsEventListener(this);
|
|
WebStore.Inventory.selectedCategory = $A($("inventory-categories").getElementsByTagName("li")).first().id.split("-").last();
|
|
},
|
|
|
|
loadCategory: function(type) {
|
|
if (!WebStore.Inventory.loadingCategory) {
|
|
Element.wait($("inventory-items"));
|
|
WebStore.Inventory._clearPreview();
|
|
WebStore.Inventory.loadingCategory = true;
|
|
new Ajax.Request(
|
|
habboReqPath + "/myhabbo/store/inventory_items", {
|
|
method: "post", parameters: { type: type },
|
|
onComplete: function(req, json) {
|
|
if (WebStore._checkResponse(req.responseText)) {
|
|
$("inventory-items").innerHTML = req.responseText;
|
|
WebStore.Inventory.selectedCategory = type;
|
|
WebStore.Inventory.loadingCategory = false;
|
|
|
|
var items = $A($("inventory-item-list").getElementsByTagName("li"));
|
|
var done = false;
|
|
|
|
if (items && items.length > 0) {
|
|
// check if the last purchased item is found and select that
|
|
if (WebStore.Inventory.lastId != 0) {
|
|
items.each(function(el) {
|
|
if (el && el.id && (!el.className || !Element.hasClassName(el, "webstore-widget-disabled"))) {
|
|
var temp = el.id.split("-");
|
|
if (temp.last() == WebStore.Inventory.lastId) {
|
|
WebStore.Inventory._selectItem(el);
|
|
WebStore.Inventory._loadPreview(temp.last(), type, temp[2] == "p");
|
|
done = true;
|
|
WebStore.Inventory.lastId = 0;
|
|
throw $break;
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
// otherwise select the first available item
|
|
if (!done) {
|
|
items.each(function(el) {
|
|
if (el && el.id && (!el.className || !Element.hasClassName(el, "webstore-widget-disabled"))) {
|
|
WebStore.Inventory._selectItem(el);
|
|
var temp = el.id.split("-");
|
|
WebStore.Inventory._loadPreview(temp.last(), type, temp[2] == "p");
|
|
done = true;
|
|
throw $break;
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
if (!done) {
|
|
WebStore.Inventory._showDefaultPreview();
|
|
}
|
|
|
|
// make sure webstore is hidden
|
|
WebStore.hideWebStoreDivs();
|
|
}
|
|
}
|
|
}
|
|
);
|
|
}
|
|
},
|
|
|
|
reloadIfNeeded: function() {
|
|
if (WebStore.Inventory.waitingForReload && WebStore.Inventory.selectedCategory) {
|
|
WebStore.Inventory.loadCategory(WebStore.Inventory.selectedCategory);
|
|
WebStore.Inventory.waitingForReload = false;
|
|
}
|
|
},
|
|
|
|
selectCategory: function(type, categoryEl) {
|
|
if (!categoryEl) {
|
|
categoryEl = $("inv-cat-" + type);
|
|
}
|
|
if (WebStore.Inventory.selectedCategory != type && categoryEl) {
|
|
categoryEl.className = "selected-main-category-no-subcategories";
|
|
if (WebStore.Inventory.selectedCategory != null) {
|
|
$("inv-cat-" + WebStore.Inventory.selectedCategory).className = "main-category-no-subcategories";
|
|
}
|
|
WebStore.Inventory.selectedCategory = type;
|
|
WebStore.Inventory.loadCategory(type);
|
|
WebStore.Inventory._setContentClassName(type);
|
|
}
|
|
},
|
|
|
|
showInventoryDivs: function() {
|
|
WebStore.hideWebStoreDivs();
|
|
$("inventory-categories-container").style.display = "block";
|
|
$("inventory-content-container").style.display = "block";
|
|
$("inventory-items-container").style.display = "block";
|
|
$("inventory-preview-container").style.display = "block";
|
|
},
|
|
|
|
hideInventoryDivs: function() {
|
|
$("inventory-categories-container").style.display = "none";
|
|
$("inventory-content-container").style.display = "none";
|
|
$("inventory-items-container").style.display = "none";
|
|
$("inventory-preview-container").style.display = "none";
|
|
},
|
|
|
|
_handleCategoryClick: function(e) {
|
|
Event.stop(e);
|
|
if (!WebStore.Inventory.loadingCategory) {
|
|
var el = Event.findElement(e, "li");
|
|
if (el && el.id) {
|
|
WebStore.Inventory.selectCategory(el.id.split("-").last(), el);
|
|
}
|
|
}
|
|
},
|
|
|
|
_setEventHandlers: function() {
|
|
if ($("inventory-items")) {
|
|
$("inventory-items").onclick = WebStore.Inventory._handleItemClick.bindAsEventListener(this);
|
|
}
|
|
|
|
if ($("inventory-preview")) {
|
|
$("inventory-preview").onclick = WebStore.Inventory._handlePreviewClick.bindAsEventListener(this);
|
|
}
|
|
},
|
|
|
|
_handleItemClick: function(e) {
|
|
Event.stop(e);
|
|
var el = Event.findElement(e, "li");
|
|
if (el && el.id && el != WebStore.Inventory.selectedItem && (!el.className || !Element.hasClassName(el, "webstore-widget-disabled"))) {
|
|
WebStore.Inventory._selectItem(el);
|
|
var temp = el.id.split("-");
|
|
WebStore.Inventory._loadPreview(temp.last(), WebStore.Inventory.selectedCategory, temp[2] == "p");
|
|
}
|
|
},
|
|
|
|
_handlePreviewClick: function(e) {
|
|
Event.stop(e);
|
|
var el = Event.findElement(e, "a");
|
|
if (el && el.id) {
|
|
if (el.id == "inventory-place") {
|
|
WebStore.Inventory._place();
|
|
} else if (el.id == "inventory-place-all") {
|
|
WebStore.Inventory._placeAll();
|
|
}
|
|
}
|
|
},
|
|
|
|
_setContentClassName: function(className) {
|
|
$("inventory-content-container").className = className;
|
|
},
|
|
|
|
_selectItem: function(el) {
|
|
try {
|
|
if (!Element.hasClassName(el, "selected")) {
|
|
Element.removeClassName(WebStore.Inventory.selectedItem, "selected");
|
|
Element.addClassName(el, "selected");
|
|
WebStore.Inventory.selectedItem = el;
|
|
}
|
|
} catch (ex) {}
|
|
},
|
|
|
|
_loadPreview: function(itemId, type, privileged) {
|
|
WebStore.Inventory._clearPreview();
|
|
Element.wait($("inventory-preview"));
|
|
WebStore.Inventory._showPreview();
|
|
var qs = { itemId: itemId, type: type };
|
|
if (type == "widgets") {
|
|
qs.privileged = privileged;
|
|
}
|
|
new Ajax.Request(
|
|
habboReqPath + "/myhabbo/store/inventory_preview", {
|
|
method: "post", parameters: qs,
|
|
onComplete: function(req, json) {
|
|
if (WebStore._checkResponse(req.responseText)) {
|
|
WebStore.Inventory.previewItem = json;
|
|
WebStore.Inventory._showPreview(req.responseText);
|
|
}
|
|
|
|
// make sure webstore is hidden
|
|
WebStore.hideWebStoreDivs();
|
|
}
|
|
}
|
|
);
|
|
},
|
|
|
|
_showPreview: function(previewHtml) {
|
|
var previewDiv = $("inventory-preview");
|
|
if (previewHtml) { previewDiv.innerHTML = previewHtml };
|
|
|
|
if (WebStore.Inventory.previewItem && WebStore.Inventory.previewItem.length > 0) {
|
|
var preview = $("inventory-preview-box").appendChild(Builder.node("div", { id: "inventory-preview-pre" }));
|
|
if (WebStore.Inventory.previewItem[5] && WebStore.Inventory.previewItem[5] > 1) {
|
|
preview.appendChild(Builder.node("div", { id: "inventory-preview-count", className: "webstore-item-count" }));
|
|
}
|
|
|
|
WebStore.Inventory._setPreviewItem();
|
|
}
|
|
|
|
previewDiv.show();
|
|
},
|
|
|
|
_clearPreview: function() {
|
|
WebStore.Inventory.previewItem = null;
|
|
var previewBox = $("inventory-preview");
|
|
if (previewBox) {
|
|
previewBox.innerHTML = "";
|
|
}
|
|
},
|
|
|
|
_showDefaultPreview: function() {
|
|
WebStore.Inventory._clearPreview();
|
|
var previewDiv = $("inventory-preview");
|
|
previewDiv.hide();
|
|
$("inventory-preview-default").show();
|
|
previewDiv.innerHTML = "";
|
|
},
|
|
|
|
_setPreviewItem: function() {
|
|
var pre = $("inventory-preview-pre");
|
|
pre.className = WebStore.Inventory.previewItem[0];
|
|
pre.title = WebStore.Inventory.previewItem[2];
|
|
if (WebStore.Inventory.previewItem[3] == "DynamicSticker") {
|
|
pre.style.backgroundImage = "url(" + habboImagerUrl + WebStore.Inventory.previewItem[4] + ")";
|
|
}
|
|
if ($("inventory-preview-count")) {
|
|
$("inventory-preview-count").innerHTML = "<div>x" + WebStore.Inventory.previewItem[5] + "</div>";
|
|
}
|
|
},
|
|
|
|
_place: function() {
|
|
if (WebStore.Inventory.selectedCategory == "stickers") {
|
|
doPlaceImageOnPage(WebStore.Inventory.selectedItem.id.split("-").last());
|
|
WebStore.Inventory._closeAfterPlace();
|
|
} else if (WebStore.Inventory.selectedCategory == "backgrounds") {
|
|
WebStore.originalBg = WebStore.Inventory.previewItem[1];
|
|
doChangeBg(WebStore.Inventory.previewItem[1], WebStore.Inventory.selectedItem.id.split("-").last());
|
|
WebStore.Inventory._closeAfterPlace();
|
|
} else if (WebStore.Inventory.selectedCategory == "widgets") {
|
|
var temp = WebStore.Inventory.selectedItem.id.split("-");
|
|
doPlaceWidget(temp[3], temp[2] == "p");
|
|
WebStore.Inventory._closeAfterPlace();
|
|
} else if (WebStore.Inventory.selectedCategory == "notes") {
|
|
WebStore.NoteEditor.open();
|
|
}
|
|
},
|
|
|
|
_placeAll: function() {
|
|
if (WebStore.Inventory.selectedCategory == "stickers") {
|
|
doPlaceImageOnPage(WebStore.Inventory.selectedItem.id.split("-").last(), true);
|
|
WebStore.Inventory._closeAfterPlace();
|
|
}
|
|
},
|
|
|
|
_closeAfterPlace: function() {
|
|
WebStore.close();
|
|
WebStore.Inventory._clearPreview();
|
|
Element.wait($("inventory-items"));
|
|
WebStore.Inventory.waitingForReload = true;
|
|
}
|
|
|
|
}
|
|
|
|
WebStore.StickerEditor = {
|
|
|
|
figureParams: null,
|
|
|
|
open: function() {
|
|
new Ajax.Request(
|
|
habboReqPath + "/myhabbo/stickereditor/stickereditor_flash", {
|
|
method: "post", parameters: WebStore.StickerEditor.figureParams || "",
|
|
onComplete: function(req, json) {
|
|
if (WebStore._checkResponse(req.responseText)) {
|
|
Overlay.hideIfMacFirefox();
|
|
|
|
var itemsDiv = $("webstore-items");
|
|
itemsDiv.innerHTML = req.responseText;
|
|
req.responseText.evalScripts();
|
|
|
|
WebStore.loadingCategory = false;
|
|
}
|
|
}
|
|
}
|
|
);
|
|
},
|
|
|
|
preview: function(figureParams) {
|
|
WebStore.StickerEditor.figureParams = figureParams;
|
|
|
|
$("flashcontent").style.display = "none";
|
|
$("flashalternate").style.display = "block";
|
|
|
|
Overlay.show();
|
|
Overlay.move("9002");
|
|
var dialog = Dialog.createDialog("webstore-confirm", "", "9003", -1500, 0, function(e) {
|
|
WebStore.closeConfirmation(e);
|
|
WebStore.StickerEditor.open();
|
|
});
|
|
Dialog.makeDialogDraggable(dialog);
|
|
Dialog.setAsWaitDialog(dialog);
|
|
Dialog.moveDialogToCenter(dialog);
|
|
|
|
new Ajax.Request(habboReqPath + "/myhabbo/stickereditor/preview", {
|
|
method: "post", parameters: figureParams || "",
|
|
onComplete: function(req, json) {
|
|
if (WebStore._checkResponse(req.responseText)) {
|
|
Dialog.setDialogBody(dialog, req.responseText);
|
|
Event.observe($("avatarimage-preview-img"), "load", function(e) { Element.remove("avatarimage-progressbar"); });
|
|
Event.observe($("avatarimage-preview-purchase"), "click", function(e) {
|
|
Event.stop(e);
|
|
Dialog.setAsWaitDialog(dialog);
|
|
WebStore.StickerEditor._purchase(json);
|
|
});
|
|
Event.observe($("avatarimage-preview-edit"), "click", function(e) {
|
|
Event.stop(e);
|
|
Element.remove($("webstore-confirm"));
|
|
Overlay.move("9000");
|
|
Overlay.hideIfMacFirefox();
|
|
Element.wait($("flashcontent"));
|
|
$("flashalternate").style.display = "none";
|
|
$("flashcontent").style.display = "block";
|
|
WebStore.StickerEditor.open();
|
|
});
|
|
}
|
|
}
|
|
});
|
|
},
|
|
|
|
_purchase: function(imageUrl) {
|
|
new Ajax.Request(habboReqPath + "/myhabbo/store/purchase_avatarsticker", {
|
|
method: "post", parameters: { stickerimage: imageUrl },
|
|
onComplete: function(req, json) {
|
|
if (WebStore._checkResponse(req.responseText)) {
|
|
if (req.responseText.strip() != "OK") {
|
|
Dialog.setDialogBody($("webstore-confirm"), req.responseText);
|
|
Event.observe($("webstore-confirm-cancel"), "click", WebStore.closeConfirmation);
|
|
} else {
|
|
WebStore.Inventory.newItems.push(json);
|
|
WebStore.Inventory.updateNewItemCount();
|
|
Element.remove($("webstore-confirm"));
|
|
WebStore.StickerEditor.open();
|
|
Overlay.move("9000");
|
|
|
|
// refresh inventory (if needed)
|
|
if (WebStore.Inventory.inventoryOpened) {
|
|
WebStore.Inventory.selectCategory(WebStore.MenuBar.selectedMainCategory.id.split("-").last());
|
|
WebStore.Inventory._clearPreview();
|
|
WebStore.Inventory.waitingForReload = true;
|
|
WebStore.Inventory.lastId = json;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
}
|
|
|
|
WebStore.NoteEditor = {
|
|
|
|
dialog: null,
|
|
noteParams: null,
|
|
id: null,
|
|
|
|
open: function() {
|
|
Overlay.move("9002");
|
|
WebStore.NoteEditor._createEditorDialog();
|
|
WebStore.NoteEditor._loadEditor();
|
|
},
|
|
|
|
close: function(e) {
|
|
if (e) { Event.stop(e); }
|
|
if ($("webstore-noteeditor")) {
|
|
Element.remove($("webstore-noteeditor"));
|
|
if (WebStore.NoteEditor.id) {
|
|
Overlay.hide();
|
|
} else {
|
|
Overlay.move("9000");
|
|
}
|
|
}
|
|
WebStore.NoteEditor.id = null;
|
|
},
|
|
|
|
edit: function(id) {
|
|
WebStore.NoteEditor.id = id;
|
|
Overlay.show();
|
|
WebStore.NoteEditor._createEditorDialog();
|
|
WebStore.NoteEditor._loadEditor({ id: id });
|
|
},
|
|
|
|
_createEditorDialog: function() {
|
|
WebStore.NoteEditor.dialog = Dialog.createDialog("webstore-noteeditor", "", "9003", -1500, 0, WebStore.NoteEditor.close);
|
|
Dialog.makeDialogDraggable(WebStore.NoteEditor.dialog);
|
|
Dialog.setAsWaitDialog(WebStore.NoteEditor.dialog);
|
|
Dialog.moveDialogToCenter(WebStore.NoteEditor.dialog);
|
|
},
|
|
|
|
_loadEditor: function(noteParams, backFromPreview) {
|
|
WebStore.NoteEditor.noteParams = noteParams || "";
|
|
|
|
new Ajax.Request(habboReqPath + "/myhabbo/noteeditor/editor", {
|
|
method: "post", parameters: WebStore.NoteEditor.noteParams, onComplete: function(req, json) {
|
|
if (WebStore._checkResponse(req.responseText)) {
|
|
Dialog.setDialogBody(WebStore.NoteEditor.dialog, req.responseText);
|
|
req.responseText.evalScripts();
|
|
|
|
var limitCallback = function(limitReached) {
|
|
try {
|
|
var currentLength = $F("webstore-notes-text").length;
|
|
$("webstore-notes-counter").innerHTML = maxLength - currentLength;
|
|
if (currentLength > 0) { WebStore.NoteEditor._enableContinue(); }
|
|
else { WebStore.NoteEditor._disableContinue(); }
|
|
} catch (e) {}
|
|
};
|
|
|
|
if (backFromPreview || WebStore.NoteEditor.id) {
|
|
window.setTimeout(function() {
|
|
$("webstore-notes-text").focus();
|
|
limitCallback();
|
|
}, 100);
|
|
}
|
|
|
|
var maxLength = $F("webstore-notes-maxlength");
|
|
Utils.limitTextarea($("webstore-notes-text"), maxLength, limitCallback);
|
|
if (maxLength < 0) {
|
|
WebStore.NoteEditor._enableContinue();
|
|
}
|
|
|
|
if ($("webstore-confirm-cancel")) { Event.observe($("webstore-confirm-cancel"), "click", WebStore.NoteEditor.close); }
|
|
if ($("webstore-notes-continue")) { Event.observe($("webstore-notes-continue"), "click", function(e) {
|
|
Event.stop(e);
|
|
var el = Event.findElement(e, "a");
|
|
|
|
if (!el.className || !Element.hasClassName(el, "disabled-button")) {
|
|
WebStore.NoteEditor.noteParams = Form.serialize($("webstore-notes-form"));
|
|
Dialog.setAsWaitDialog(WebStore.NoteEditor.dialog);
|
|
new Ajax.Request(habboReqPath + "/myhabbo/noteeditor/preview", {
|
|
method: "post", parameters: WebStore.NoteEditor.noteParams, onComplete: function(req, json) {
|
|
if (WebStore._checkResponse(req.responseText)) {
|
|
if (req.responseText.strip() == "BACK") {
|
|
WebStore.NoteEditor._loadEditor(WebStore.NoteEditor.noteParams, true);
|
|
} else {
|
|
Dialog.setDialogBody(WebStore.NoteEditor.dialog, req.responseText);
|
|
|
|
if ($("webstore-confirm-cancel")) { Event.observe($("webstore-confirm-cancel"), "click", WebStore.NoteEditor.close); }
|
|
if ($("webstore-notes-add")) { Event.observe($("webstore-notes-add"), "click", function(e) {
|
|
var isEditing = !!WebStore.NoteEditor.id;
|
|
WebStore.NoteEditor.close(e);
|
|
if (isEditing) {
|
|
WebStore.NoteEditor._saveChanges();
|
|
} else {
|
|
WebStore.NoteEditor._place();
|
|
WebStore.Inventory._closeAfterPlace();
|
|
}
|
|
}); }
|
|
if ($("webstore-notes-edit")) { Event.observe($("webstore-notes-edit"), "click", function(e) {
|
|
Event.stop(e);
|
|
WebStore.NoteEditor._loadEditor(WebStore.NoteEditor.noteParams, true);
|
|
});
|
|
}
|
|
}
|
|
}
|
|
}
|
|
});
|
|
}
|
|
});
|
|
}
|
|
}
|
|
}
|
|
});
|
|
},
|
|
|
|
_place: function() {
|
|
if (WebStore.NoteEditor.noteParams) {
|
|
new Ajax.Request(habboReqPath + "/myhabbo/noteeditor/place", {
|
|
method: "post", parameters: WebStore.NoteEditor.noteParams, onComplete: function(req, json) {
|
|
if (WebStore._checkResponse(req.responseText)) {
|
|
if (req.responseText.strip() == "BACK") {
|
|
WebStore.NoteEditor._loadEditor(WebStore.NoteEditor.noteParams, true);
|
|
} else if (req.responseText.strip() != "") {
|
|
$("playground").insert(req.responseText);
|
|
var note = $("stickie-" + json);
|
|
Element.hide(note);
|
|
note.style.top = "10px";
|
|
note.style.left = "10px";
|
|
Effect.BlindDown(note, {scaleX:true, scaleY:true});
|
|
initMovableItems();
|
|
Utils.setAllEmbededObjectsVisibility('hidden');
|
|
}
|
|
}
|
|
}
|
|
});
|
|
}
|
|
},
|
|
|
|
_saveChanges: function() {
|
|
if (WebStore.NoteEditor.noteParams) {
|
|
new Ajax.Request(habboReqPath + "/myhabbo/noteeditor/save", {
|
|
method: "post", parameters: WebStore.NoteEditor.noteParams, onComplete: function(req, json) {
|
|
if (WebStore._checkResponse(req.responseText)) {
|
|
if (req.responseText.strip() == "BACK") {
|
|
WebStore.NoteEditor._loadEditor(WebStore.NoteEditor.noteParams, true);
|
|
} else if (req.responseText.strip() != "") {
|
|
var oldNote = $("stickie-" + json);
|
|
var x = oldNote.offsetLeft;
|
|
var y = oldNote.offsetTop;
|
|
Element.remove(oldNote);
|
|
$("playground").insert(req.responseText);
|
|
var note = $("stickie-" + json);
|
|
Element.hide(note);
|
|
note.style.top = y+"px";
|
|
note.style.left = x+"px";
|
|
Effect.Appear(note);
|
|
initMovableItems();
|
|
Utils.setAllEmbededObjectsVisibility('hidden');
|
|
}
|
|
}
|
|
}
|
|
});
|
|
}
|
|
},
|
|
|
|
_enableContinue: function() {
|
|
Element.removeClassName($("webstore-notes-continue"), "disabled-button");
|
|
},
|
|
|
|
_disableContinue: function() {
|
|
Element.addClassName($("webstore-notes-continue"), "disabled-button");
|
|
}
|
|
|
|
}
|
|
|
|
ScriptLoader.notify("myhabbo-store"); |