"use strict";
/*
Im entsprechenden Dokument
scriptTag src="https://rosenbaum.ch/exposhoplib.jsl"> endScriptTag
Zum Testen:
Öffnen:
Schliessen:
Alternierend:
*/
//SETTINGS ----------------------------------------------------------------------------------------
var sExpoShopBuzzerBackground= "#cdaa00";
var sExpoShopBuzzerColor= "white";
var sExpoShopBuzzerLabelOffsetTop= "32px";
var sExpoShopBuzzerLabelOn= "mein
PIANO
finden";
var sExpoShopBuzzerLabelOff= "PIANOS
Liste
schliessen";
function hdExpoShopItems() //HereDoc
{
/*
,,,
"Marke","Modell","Ausführung","Preis"
,,,
"Flügel C.Bechstein neu","Academy 190cm","schwarz poliert"," CHF 53'800.-"
,,,
"Piano C.Bechstein neu","Residence 118cm","classic schwarz poliert"," CHF 23'100.-"
"Piano C.Bechstein neu","Academy 124cm","style schwarz poliert"," CHF 19'900.-"
"Piano C.Bechstein neu","Academy 114cm","compact schwarz poliert"," CHF 16'990.-"
,,,
"Piano W.Hoffmann neu","P 120cm","professionel"," CHF 12'400.-"
,,,
"Piano Yamaha neu","P 121cm","schwarz poliert"," CHF 9'333.-"
"Piano Yamaha neu","b3 121cm","schwarz poliert"," CHF 7'028.-"
"Piano Yamaha neu","b2 113cm","schwarz poliert"," CHF 5'997.-"
"Piano Yamaha neu","b2 113cm","weiss poliert"," CHF 6'160.-"
"Piano Yamaha neu=VERKAUFT","b3 121cm","silent SC2 schwarz poliert"," CHF 9'267.-"
"Piano Yamaha neu","b2 113cm","silent SC2 schwarz poliert"," CHF 8'236.-"
,,,
"Flügel Shigeru Kawai Occasion","212cm ","schwarz poliert, Mechanik revidiert, intoniert"," CHF 42'600.-"
"Flügel Bösendorfer Occasion=VERKAUFT","180cm","schwarz seidenglanz Mechanik revidiert, intoniert"," CHF 39'800.-"
"Flügel Grotrian Steinweg Occasion","186cm","schwarz poliert, total revidiert, Gehäuse aufpoliert"," CHF 35'600.-"
"Flügel Petrof Occasion","190cm","schwarz poliert, total revidiert, inkl. Gehäuse neu lackiert"," CHF 19'200.-"
,,,
"Piano Steinway&Sons Occasion","Mod.V 125cm","Nussbaum, total revidiert inkl. Gehäuse","CHF 18'900.-"
"Piano Steinway&Sons Occasion","Mod.Z 114cm","schwarz seidenmatt, total revidiert inkl. Gehäuse","CHF 11'750.-"
"Piano Bösendorfer Occasion","Mod. 120cm","schwarz poliert, revidiert","CHF 9'800.-"
"Piano Pfeiffer Occasion","Mod. 114cm","Nussbaum revidiert, neue Basssaiten"," CHF 7'900.-"
"Piano Pfeiffer Occasion","Mod. 112cm","Nussbaum revidiert, neue Basssaiten"," CHF 6'600.-"
"Piano Seiler Occasion=VERKAUFT","Mod. 114cm","schwarz seidenmatt, Neulackierung, revidiert, neue Basssaiten"," CHF 8'700.-"
"Piano Euterpe Occasion=VERKAUFT","Mod. 114cm","Nussbaum, revidiert, neue Bassaiten"," CHF 6'900.-"
"Piano Sauter Occasion","Mod. 118cm","Kirsche, revidiert"," CHF 6'800.-"
"Piano Sauter Occasion","Mod. 113cm","Eiche hell, revidiert, neue Bassaiten"," CHF 5'900.-"
"Piano Zimmermann Occasion","Mod. 114cm","Buche hell"," CHF 6'200.-"
"Piano Schimmel Occasion ","Mod. 112cm","Nussbaum, revidiert, neue Bassaiten"," CHF 6'900.-"
"Piano Schimmel Occasion=1/2 PREIS","Mod. 108cm","Nussbaum revidiert, neue Basssaiten; bisher CHF 4'800.-","jetzt CHF 2'400.-"
"Piano Nordiska Occasion","Mod. 108cm","Eiche dunkel revidiert, neue Bassaiten"," CHF 4'800.-"
"Piano Yamaha Occasion=VERMIETET","Mod. 110cm silent","Nussbaum revidiert, neue Basssaiten"," CHF 4'500.-"
"Piano Yamaha Occasion=1/2 PREIS","Mod. 108cm","Nussbaum revidiert, neue Basssaiten; bisher CHF 3'800","jetzt CHF 1'900.-"
"Piano Kawai Occasion=1/2 PREIS","Mod. 114cm","Mahagony revidiert, neue Bassaiten; bisher CHF 4'500.-","jetzt CHF 2'250.-"
"Piano Erard Occasion=1/2 PREIS","Mod. 105cm","Nussbaum revidiert, neue Basssaiten; bisher CHF 3'500.-","jetzt CHF 1'750.-"
"Piano Hyundai Occasion=1/2 PREIS","Mod. 106cm","schwarz poliert, revidiert, neue Bassaiten; bisher CHF 3'200.-","jetzt CHF 1'600.-"
,,,
*/
}//END hdExpoShopItems() //HereDoc
//END SETTINGS =======================================================================================
//HereDoc wird nicht mehr gebraucht, jetzt fetch()
//var sItems= String(hdExpoShopItems);
//sItems= sItems.replace(/[\w\W]*\/\*\s*/, "");
//sItems= sItems.replace(/\s*\*\/[\w\W]*/, "");
//sItems= sItems.replace(/\n/g, "|");
//sItems= sItems.replace(/\"\,/g, "|");
//sItems= sItems.replace(/\"/g, "");
//sItems= sItems.replace(/\,{3}/g, "|||");
//sItems= sItems.replace(/\|\ */g, "|");
//var ar_Items= sItems.split("|");
//alert(ar_Items[0]);
try
{ //CORS-Problem mit fetch: location.hostname für mit und ohne www
//alert(location.hostname);
fetch("https://" +location.hostname +"/exposhopitems.csv?nc=Math.random()")
.then(x => x.text())
.then(y => fItemsArrayBuild(y));
}
catch(_sErr)
{
alert(_sErr);
}
function fItemsArrayBuild(_sItems)
{
_sItems= _sItems.replace(/\n/g, "|");
_sItems= _sItems.replace(/\"\,/g, "|");
_sItems= _sItems.replace(/\"/g, "");
_sItems= _sItems.replace(/\,{3}/g, "|||");
_sItems= _sItems.replace(/\|\ */g, "|");
window.ar_Items= _sItems.split("|");
//alert(isbDump(ar_Items));
}//END fItemsArrayBuild(_sItems)
function hdExpoShopBuzzer()
{/*
${isbRef.Label}
*/
}//END hdExpoShopBuzzer()
window.addEventListener("load", function(){fExpoShopBuzzerInit();});
function fExpoShopBuzzerInit()
{
var elExpoShop= document.getElementById("hdviExpoShop");
var elExpoShopBuzzer= document.createElement("DIV");
elExpoShopBuzzer.innerHTML= isbHereDoc(hdExpoShopBuzzer,
{Background: sExpoShopBuzzerBackground,
Color: sExpoShopBuzzerColor,
OffsetTop: sExpoShopBuzzerLabelOffsetTop,
Label: sExpoShopBuzzerLabelOn});
elExpoShop.parentNode.insertBefore(elExpoShopBuzzer, elExpoShop);
}//END fExpoShopBuzzerInit()
function fExpoShopInit()
{
var sHTML= "";
var iItemNo= 0;
var i= 0;
while (i < ar_Items.length)
{
if (! ar_Items[i])
{
sHTML+= "
";
}
else
{
iItemNo++;
sHTML+= "" +
"
" +
ar_Items[i] +"" +
"
" +
ar_Items[i+1] +"" +
"
" +
ar_Items[i+2] +"
" +
"
" +
ar_Items[i+3] +"
" +
"
";
}//END if (!ar_Items[i])
i= i +4;
}
//STAMPS------------------------------
sHTML+= isbHereDoc(hdStampStyle).toString();
document.getElementById("hdviExpoShop").innerHTML= sHTML;
var iItem= 1;
var elItem;
while (elItem= document.getElementById("hbiItem"+iItem))
{
elItem.innerHTML= fCheckForDeal(elItem.innerHTML, iItem);
iItem++;
}
}//END fExpoShopInit()
function fExpoShopShow(_bShow) //null für toggle
{
var bShow;
var elExpoShop= document.getElementById("hdviExpoShop");
var elExpoShopBuzzer= document.getElementById("hdviExpoShopBuzzer");
if (elExpoShop.isb_bShow == undefined)
{
fExpoShopInit();
bShow= true;
}
else
if (_bShow === null)
{
bShow= ! elExpoShop.isb_bShow;
}
else
{
bShow= _bShow;
}
if (bShow)
{
elExpoShop.style.display= "block";
location='#hdviExpoShop';
elExpoShopBuzzer.innerHTML= sExpoShopBuzzerLabelOff;
}
else
{
elExpoShop.style.display= "none";
elExpoShopBuzzer.innerHTML= sExpoShopBuzzerLabelOn;
}
elExpoShop.isb_bShow= bShow;
}//END fExpoShopShow(_el)
//Animated Stamps ---------------------------------------------------------------------------
function hdStampStyle()
{/*
*/}//END hdStampStyle()
function hdStamp()
{/*
*/}//END hdStamp()
function fStamp(_elAfter, _oInfo)
{
var oInfo= {sAniDuration:"2s", sText:"ACTION", sColor:"darkviolet"};
for (let k in _oInfo)
{
oInfo[k]= _oInfo[k];
}
var sHTML= isbHereDoc(hdStamp, oInfo);
var elWrap= document.createElement("DIV");
elWrap.innerHTML= sHTML;
var elStamp= elWrap.children[0];
elWrap.remove();
//alert(elStamp.outerHTML);
_elAfter.parentNode.insertBefore(elStamp, _elAfter.nextSibling);
}
function fISObserverAdd(_elToObserve, _fCallBack, _oInfo)
{
if (! window._isbISObserveds)
{
window._isbISObserveds= [];
}
var isoObserver = new IntersectionObserver(function(entries)
{
if(entries[0].isIntersecting === true)
{
_fCallBack(entries[0].target, _oInfo);
this.unobserve(_elToObserve);
}
}, { threshold: [1] });
isoObserver.observe(_elToObserve);
window._isbISObserveds.push(isoObserver, _oInfo);
}//END fISObserver(_elToObserve, _fCallBack, _oInfo)
function fCheckForDeal(_sItem, _iItemNo) //string
{
var sDeal= _sItem.replace(/[^\=]*(\=|$)/, "");
//alert(sDeal);
sDeal= sDeal.trim();
if (sDeal)
{
var rxItem= new RegExp("\\=\\s*" +sDeal);
_sItem= _sItem.replace(rxItem, "");
//alert(_sItem);
fCheckForDeal._isbAniNo= fCheckForDeal._isbAniNo || 0;
fCheckForDeal._isbAniNo++;
var iAniDuration= 2; //to slow: +fCheckForDeal._isbAniNo;
}
if (sDeal.toUpperCase()=="VERKAUFT")
{
fISObserverAdd(document.getElementById("hbiItem"+_iItemNo),
fStamp, {sAniDuration:iAniDuration+"s", sText:"VERKAUFT", sColor:"red"});
}
else
if (sDeal)
{
fISObserverAdd(document.getElementById("hbiItem"+_iItemNo),
fStamp, {sAniDuration:iAniDuration+"s", sText:sDeal, sColor:"blue"});
}
return _sItem;
}//END fCheckForDeal(_sItem, _iItem)
//Animated Stamps ======================================================================