/***************************************************************/ /* Urlaubsrechner - Konfiguration */ /***************************************************************/ /***************************************************************/ /***************************************************************/ /* Hier kann die Preisberechnung veraendert werden ... */ /***************************************************************/ var URMAXPERS = 6; // Maximale Anzahl Personen var URGRUNDP = 45; // Grundpreis var URGRDPERS = 2; // Anzahl Personen Grundpreis var URMEHRP = 10; // Mehrpreis pro zusaetzl. Person var URKINDK1 = 7; // Preis fuer Kinder Kategorie 1 (z.B. 16 Jahren) var URKINDK2 = 5; // Preis fuer Kinder Kategorie 2 (z.B. 8 Jahren) var URWAEHRUNG = " €"; // Angez.Waehrung, z.B. auch " Euro" var URUSEKINDK1 = 1; // Abfrage von Kindern Kategorie 1 (1 = AN / 0 = AUS) var URUSEKINDK2 = 1; // Abfrage von Kindern Kategorie 2 (1 = AN / 0 = AUS) var URUSEZAUFSCHL = 1; var URZAUFSCHL = // Aufschlag im Zeitraum auf Grundpreis, Mehrpreis, KindK1 und KindK2 new Array ( // new Array("01.01-15.01", 0, +3, 0, 0, 0), // vom 01.01 - 15.01 0 Euro. // new Array("16.01-19.04", 1, 0, 0, 0, 0), // auf1, auf2 und auf3 sind // new Array("20.04-20.09", 0, +3, 0, 0, 0), // versch. CSS-Formate in der zug. CSS-Datei // new Array("21.09-14.12", 2, 0, 0, 0, 0), // fuer die Anzeige der Tage (Farben). // new Array("15.12-31.12", 0, +3, 0, 0, 0) // danach Aufschlag GP, MehrP, KindK1, KindK2 new Array("01.01-20.04", 0, 0, 0, 0, 0), new Array("21.04-20.09", 1, +3, 0, 0, 0), new Array("21.09-31.12", 0, 0, 0, 0, 0) ); var URUSEKAUFSCHL = 2; var URKAUFSCHL = // Aufschlag wegen Kurzfristig. auf Gesamtpreis new Array ( 11, 11, 11, 11, 7, 3, 0, 0, 0, 0, 0, 0, 0, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3 // fuer einen, zwei, drei, vier, ... Tage // 80, 80, 80, 80, 55, 30 // fuer einen, zwei, drei, vier, ... Tage // 92, 92, 92, 92, 70, 48 // fuer einen, zwei, drei, vier, ... Tage ); /***************************************************************/ /* Hier koennen verschiedene Einstellungen gemacht werden ... */ /***************************************************************/ var URUSEBUTTONS = 1; var URUSEMINFO = 1; var URUSECOUNTER = 1; var URCOUNTINFO = 1; var URNOSTARTDAY = 1; var URANIMSTATUS = 0; var URANIMCOLOR = 1; var URANIMRUNTXT = 1; var URUSENUMSEL = 1; var URUSESTVALS = 1; var URSTARTVALS = new Array ( "--", "--", "----", "--", "--", "0", "0" ); /***************************************************************/ /* Hier kann ein Counter definiert werden ... */ /***************************************************************/ var URCOUNTER = new Object(); URCOUNTER["_URL_"] = "http://www.fewo-graf.de/js/counter.php"; URCOUNTER["_PC1_"] = "NOOUT=1&CLICK=5" URCOUNTER["_PC2_"] = "NOOUT=1&CLICK=6"; URCOUNTER["_PNC_"] = "NOOUT=1"; URCOUNTER["index.html"] = "NOOUT=1&CLICK=1"; URCOUNTER["home.html"] = "NOOUT=1&CLICK=1"; URCOUNTER["ferienwohnung.html"] = "NOOUT=1&CLICK=2"; URCOUNTER["freizeit.html"] = "NOOUT=1&CLICK=3"; URCOUNTER["preise.html"] = "NOOUT=1&CLICK=4"; /***************************************************************/ /* Hier koennen Texte und Auswahlwerte veraendert werden ... */ /***************************************************************/ var URTTIPSD = new Array ( "Saison A", "Saison B" ); var URSTYLES = new Array ( "auf2", "auf1" ); var URTTIPSS = new Array ( "Monat zurück", "Monat vor", "Monat und Jahr auswählen", "Belegt" ); var URLEGEND = new Array ( new Array ("auf2", "Saison A"), new Array ("auf1", "Saison B"), new Array ("belegt", "bereits belegte Tage"), new Array ("aktbel", "ausgewählte belegte Tage"), new Array ("akt", "ausgewählte freie Tage") ); var URWDAYS = new Array ( "Mo", "Di", "Mi", "Do", "Fr", "Sa", "So" ); var URMNAMES = new Array ( "Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember" ); var URTEXT = new Array ( "Urlaubsrechner mit Belegungsplan", "Zeitraum (An-/Abreisetag)", "Personen ingesamt (max. 6):", "Gesamtpreis:", "Preis pro Tag und Person:", "U16", "U8" ); var URMINFO = /* ""+ "
    "+ "
  1. Bitte zuerst im Kalender den geplanten Urlaubsmonat auswählen. (»)
  2. "+ "
  3. Dann den gewünschten Tag für ihren Urlaubsbeginn im Kalender anklicken.
  4. "+ "
  5. Nun die Anzahl der Urlaubstage und der Personen auswählen.
  6. "+ "
"+ */ "
"+ "Unsere Preise sind saisonabhänig und personenbezogen, und
"+ "ergeben sich pro Tag aus einem Grundpreis ab "+URGRUNDP+URWAEHRUNG+" für 2 Personen,
"+ "für jede weitere Person "+URMEHRP+URWAEHRUNG+", Kinder je nach Alter "+URKINDK1+URWAEHRUNG+" bzw. "+URKINDK2+URWAEHRUNG+".
"+ "Bei Kurzaufenthalten (bis zu 6 Tagen) erhöht sich der Grundpreis."+ "
"+ /* "Als familienfreundliches Feriendomizil haben wir ganzjährig die gleichen Preise.
" + "Ausserhalb der Ferienzeiten bieten wir aber auch verbilligte Pauschalen an.
" + "Der Preis für einen Urlaub bei uns ist also u.U. abhängig von ihrem Urlaubszeitraum.
" + "Deshalb dient der Kalender unten nicht nur zur Ansicht der Belegungssituation,
" + "man kann dort auch den unten angegebenen Urlaubszeitraum verändern.

" + */ "
"+ "Sie können im Urlaubsrechner beruhigt beliebige Eingaben machen,
" + "dies führt zu keiner Buchung oder Buchungsanfrage bei uns." + "
"+ ""; var URHILFE = new Array ( "Bitte unten oder im Kalender links den gew%FCnschten Anreisetag ausw%E4hlen.

"+ "Sie k%F6nnen dazu auch auf einen anderen Monat umschalten,
"+ "indem sie die Buttons '%AB' und '%BB' im Kalender verwenden.", "Bitte geben sie die Anzahl der von ihnen geplanten %DCbernachtungen
"+ "im zweiten Auswahlfeld unten ein.", "Bitte geben sie die Anzahl der erwachsenen Personen
"+ "im dritten Auswahlfeld unten ein.", "Um den Urlaubszeitraum zu %E4ndern, einfach unten oder im Kalender
"+ "einen anderen Tag f%FCr ihren Urlaubsbeginn ausw%E4hlen oder
"+ "unten die Anzahl der Urlaubstage ver%E4ndern.

"+ "Um auf einen anderen Monat zu schalten, k%F6nnen sie die
"+ "Buttons '%AB' und '%BB' im Kalender verwenden." ); var URZSTAT = new Array ( new Array ( "urdzstatE", unescape("Bitte Anreisetag eingeben"), "#B00000", "#FFFF00"), new Array ( "urdzstatE", unescape("Bitte Anzahl der Übernachtungen eingeben"), "#B00000", "#FFFF00"), new Array ( "urdzstatE", unescape("Bitte Anzahl der Personen angeben"), "#B00000", "#FFFF00"), new Array ( "urdzstatE", unescape("Zeitraum ist leider nicht mehr frei !!"), "#B00000", "#FFFF00"), new Array ( "urdzstatW", unescape("Zeitraum ist nicht komplett frei !!"), "#B00000", "#FFFF00"), new Array ( "urdzstatOK", unescape("Zeitraum ist noch frei"), "#00C000", "#FFFF00") ); var URQUEST = new Array ( new Array ( "Anreisetag eingeben (oder im Kalender anklicken):"), new Array ( "Anzahl der geplanten Übernachtungen eingeben:", 4, 28 ), new Array ( "Anzahl der erwachsenen Personen angeben:", 2, 6 ), new Array ( "Kinder unter 16 Jahren (bei Urlaubsantritt):", 0, 4 ), new Array ( "Kinder unter 8 Jahren (bei Urlaubsantritt):", 0, 4 ) ); var URBELEGT = new Array ( "30.07.2011-13.08.2011", "12.02.2011-26.02.2011", "17.08.2011-27.08.2011", "12.06.2011-24.06.2011", "10.09.2011-24.09.2011", "31.12.2010-07.01.2011", "23.07.2011-29.07.2011", "12.07.2011-22.07.2011", "27.03.2011-02.04.2011", "28.08.2011-04.09.2011", "11.02.2012-25.02.2012", "01.05.2011-10.05.2011", "14.04.2011-19.04.2011", "01.07.2011-04.07.2011", "15.10.2011-22.10.2011", "21.07.2012-04.08.2012", "26.08.2012-08.09.2012", "25.09.2011-01.10.2011", "29.10.2011-05.11.2011", "28.12.2011-03.01.2012", "05.08.2012-19.08.2012", "09.09.2012-23.09.2012", "29.06.2012-20.07.2012", "10.06.2012-24.06.2012", "02.06.2012-09.06.2012", "29.02.2012-04.03.2012", "17.05.2012-20.05.2012" ); /***************************************************************/ /* Urlaubsrechner */ /***************************************************************/ /* (C) 2008, Dipl. Inf. Wolfram Graf (E-Mail: er@dawoife.de) */ /***************************************************************/ /***************************************************************/ /* Lokale Variablen */ /***************************************************************/ var CLICKED1 = 0; var CLICKED2 = 0; var ANIMMODE = 0; var TOP = 0; var LEFT = 0; var Unselectable = { enable : function(e) { var e = e ? e : window.event; if (e.button != 1) { if (e.target) { var targer = e.target; } else if (e.srcElement) { var targer = e.srcElement; } var targetTag = targer.tagName.toLowerCase(); if ((targetTag != "input") && (targetTag != "textarea")) { return false; } } }, disable : function () { return true; } } /***************************************************************/ /* Lokale Hilfs-Funktionen */ /***************************************************************/ function leadZeroS(num, len) { var numStr = ""+num; while (numStr.length < len) numStr = "0"+numStr; return numStr; } function getMonthDays(year, month) { return new Date(year, month+1, 0).getDate() } function getDay(date) { return date.getDate(); } function getMonth(date) { return date.getMonth(); } function getYear(date) { var year = date.getYear(); if (year < 1000) year += 1900; return year; } function addDays(date, days) { return new Date(getYear(date), getMonth(date), getDay(date)+days); } function date2String(date) { var month = getMonth(date)+1; var year = getYear(date); var day = getDay(date); return leadZeroS(day,2)+"."+leadZeroS(month,2)+"."+year; } /***************************************************************/ function getQuestValue(name) { var obj = document.getElementById(name); if (!obj) return 0; var value = 0; if ((obj.nodeName == "DIV") || (obj.nodeName == "SPAN")) { if (isNaN(obj.innerHTML)) value = 0; else value = parseInt(obj.innerHTML, 10); } else if (isNaN(obj.value)) value = 0; else value = parseInt(obj.value, 10); if (value < 0) return 0; return value; } function setQuestValue(name, value) { var obj = document.getElementById(name); if (!obj) return 0; if ((obj.nodeName == "DIV") || (obj.nodeName == "SPAN")) obj.innerHTML = value; else obj.value = value; return 1; } /***************************************************************/ function setObjHTML(obj, html) { if (typeof obj == "string") obj = document.getElementById(obj); if (!obj) return 0; if (obj.innerHTML != html) obj.innerHTML = html; return 1; } function getObjPos(obj, left, top) { LEFT = left; TOP = top; while (obj) { var style = obj.currentStyle; if (typeof style == "undefined") style = document.defaultView.getComputedStyle(obj, null); if (typeof style != "undefined") if (style.position == "relative") { obj = obj.offsetParent; continue; } LEFT += obj.offsetLeft; TOP += obj.offsetTop; obj = obj.offsetParent; } } /***************************************************************/ function setObjAttr(name, attr, value) { document.getElementById(name)[attr] = value; } function getObjAttr(name, attr) { return document.getElementById(name)[attr]; } /***************************************************************/ function hex2byte(h) { if (h.length != 2) return 0; return parseInt(h, 16); } function byte2hex(b) { var hex_alpha = "0123456789ABCDEF"; if (b >= 256) b = 255; return hex_alpha.charAt(b/16) + hex_alpha.charAt(b%16); } /***************************************************************/ function getStringCharsHTML(s) { var a = new Array(); var sz = false; for (i = 0, li = 0, idx = 0; i < s.length; i++) { if (s.charAt(i) == '&') sz = true; if (s.charAt(i) == ';' && sz) sz = false; if (!sz) { a[idx] = s.substring(li, i+1); if (a[idx] == " ") a[idx] = " "; idx++; li = i+1; } } return a; } /***************************************************************/ function doSend(url, params) { var http_request = false; if (window.XMLHttpRequest) { http_request = new XMLHttpRequest(); if (http_request.overrideMimeType) { http_request.overrideMimeType('text/xml; charset= iso-8859-1'); } } else if (window.ActiveXObject) { try { http_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } if (!http_request) return; if (params != "") url = url + "?" + params; try { http_request.open('GET', url, true); http_request.send(null); } catch (e) { /* alert(e); */ } /* alert("Send: " + url); */ } function doCount(click, info) { var params = ""; if (!URUSECOUNTER) return; if (typeof URCOUNTER == "undefined") return; if (typeof URCOUNTER["_PC1_"] == "undefined") return; if (typeof URCOUNTER["_PC2_"] == "undefined") return; if (typeof URCOUNTER["_PNC_"] == "undefined") return; if (!URCOUNTINFO) info = ""; if (click == 1 && CLICKED1 == 1 && info == "") return; if (click == 2 && CLICKED2 == 1 && info == "") return; if (click == 1) CLICKED1 = 1; if (click == 2) CLICKED2 = 1; switch (click) { case 1: params = URCOUNTER["_PC1_"]; break; case 2: params = URCOUNTER["_PC2_"]; break; default: params = URCOUNTER["_PNC_"]; break; } if (info != "") params = params + "&INFO=\""+info+"\""; doSend(URCOUNTER["_URL_"], params); } /***************************************************************/ function setAnimatedObj(obj, text, scol, ecol) { if (obj["animatedInfo"] != "undefined") if (obj["animatedInfo"] == text+":"+scol+":"+ecol) return; else obj["animatedInfo"] = text+":"+scol+":"+ecol; obj["animatedText"] = getStringCharsHTML(text); if (obj["animatedTOut"] != "undefined") window.clearTimeout(obj["animatedTOut"]); if (!URANIMSTATUS) { setObjHTML(obj, "("+text+")"); return; } obj.style.width = 0; if (URANIMCOLOR) { ANIMMODE = 1; setupColorAnim(obj, text, scol, ecol); } if (URANIMRUNTXT) { ANIMMODE = 2; setupRunTxtAnim(obj); } obj["animatedTOut"] = setTimeout(function(){doAnimateObj(obj)}, 100); } function setupColorAnim(obj, text, scol, ecol) { obj["animatedCols"] = new Array(); obj["animatedCIdx"] = 0; if (scol.charAt(0) == "#") scol = scol.substring(1,7); if (ecol.charAt(0) == "#") ecol = ecol.substring(1,7); SR = hex2byte(scol.substring(0,2)); SG = hex2byte(scol.substring(2,4)); SB = hex2byte(scol.substring(4,6)); ER = hex2byte(ecol.substring(0,2)); EG = hex2byte(ecol.substring(2,4)); EB = hex2byte(ecol.substring(4,6)); len = obj["animatedText"].length; cols = Math.max(len, 40); idx = 0; while (idx < len) obj["animatedCols"][idx++] = "#"+scol; for (i = 0; i < cols; i++) { obj["animatedCols"][idx] = "#"; obj["animatedCols"][idx] += byte2hex(SR-i*(SR-ER)/(cols-1)); obj["animatedCols"][idx] += byte2hex(SG-i*(SG-EG)/(cols-1)); obj["animatedCols"][idx] += byte2hex(SB-i*(SB-EB)/(cols-1)); idx++; } idxn = idx; for (i = 0; i < cols; i++) obj["animatedCols"][idx++] = obj["animatedCols"][idxn-1-i]; } function setupRunTxtAnim(obj) { obj["animatedRIdx"] = 0; } function doAnimateObj(obj) { len = obj["animatedText"].length; text = ""; msec = 0; newm = false; switch (ANIMMODE) { case 1: case 2: if (obj.style.textAlign != "center") obj.style.textAlign = "center"; break; case 3: if (obj.style.textAlign != "left") obj.style.textAlign = "left"; break; case 4: if (obj.style.textAlign != "right") obj.style.textAlign = "right"; break; } if (URANIMCOLOR && ANIMMODE == 1) { cols = obj["animatedCols"].length; idx = (cols-obj["animatedCIdx"])%cols; lci = 0; for (i = 0; i < len; i++) { ci = (idx+i)%cols; if (obj["animatedCols"][ci] != obj["animatedCols"][lci] || i == 0) { if (i != 0) text = text + ""; text = text + ""; } text = text + obj["animatedText"][i]; lci = ci; } text = text + ""; obj["animatedCIdx"] = (obj["animatedCIdx"] >= cols-2) ? 0 : (obj["animatedCIdx"]+2); if (obj["animatedCIdx"] == 0) newm = true; msec = 50; } if (URANIMRUNTXT && ANIMMODE != 1) { switch (ANIMMODE) { case 2: case 4: default: for (i = 0; i < obj["animatedRIdx"]; i++) text = text + obj["animatedText"][i]; break; case 3: for (i = obj["animatedRIdx"]; i < len; i++) text = text + obj["animatedText"][i]; obj.style.textAlign = "left"; break; } obj["animatedRIdx"] = (obj["animatedRIdx"] >= len) ? 0 : (obj["animatedRIdx"]+1); if (obj["animatedRIdx"] > 0 && obj["animatedRIdx"] < len-1) obj["animatedRIdx"] = obj["animatedRIdx"]+1; if (obj["animatedRIdx"] == 0) newm = true; if (ANIMMODE == 2) msec = 30; else msec = 80; } if (text == "") text = " "; setObjHTML(obj, text); if (newm) switch (ANIMMODE) { case 1: msec = 3000; ANIMMODE = 3; obj.style.width = obj.offsetWidth; break; case 2: msec = 1000; ANIMMODE = 1; obj.style.width = obj.offsetWidth; break; case 3: msec = 80; ANIMMODE = 4; break; case 4: msec = 1000; ANIMMODE = 1; obj.style.width = obj.offsetWidth; break; } if (msec > 0) obj["animatedTOut"] = setTimeout(function(){doAnimateObj(obj)}, msec); } function Buchungsanfrage() { var days = getQuestValue("questdays"); var pers = getQuestValue("questpers"); var chk1 = getQuestValue("questchk1"); var chk2 = getQuestValue("questchk2"); var type = ""; if (chk1 > 0) type = type + chk1 + " x " + URTEXT[5]; if (chk2 > 0) { if (type != "") type = type + " , "; type = type + chk2 + " x " + URTEXT[6]; } if ((!startTag) || (days == 0) || (pers == 0)) window.location.href = "anfrage.html"; else window.location.href = "/js/anfrage.php?" + "SDAY="+date2String(startTag)+"&" + "EDAY="+date2String(addDays(startTag, days))+"&" + "PERS="+(pers)+"&" + "CHLDS="+(chk1+chk2)+"&" + "CTYPE=\""+type+"\""; } /***************************************************************/ /* Lokale Variablen */ /***************************************************************/ var jetzt = new Date(); var anzJahr = getYear(jetzt); var anzMonat = getMonth(jetzt); var heute = new Date(anzJahr, anzMonat, getDay(jetzt)); var startTag = null; var cinfo = new Array(); var menutmo = null; var helptmo = null; var nseltmo = null; var nselobj = null; /***************************************************************/ /* Lokale Funktionen */ /***************************************************************/ function getAufschlagIdx(date) { for (j = 0; j < URZAUFSCHL.length; j++) { if (URZAUFSCHL[j][0].length != 11) continue; if (URZAUFSCHL[j][0].charAt(2) != '.') continue; if (URZAUFSCHL[j][0].charAt(5) != '-') continue; if (URZAUFSCHL[j][0].charAt(8) != '.') continue; var von = new Date(getYear(date), URZAUFSCHL[j][0].substr(3,2)-1, URZAUFSCHL[j][0].substr(0,2)); var bis = new Date(getYear(date), URZAUFSCHL[j][0].substr(9,2)-1, URZAUFSCHL[j][0].substr(6,2)); if (date >= von && date <= bis) return j; } return -1; } function isTagBelegt(day) { if (typeof URBELEGT == "undefined") return 0; for (k = 0; k < URBELEGT.length; k++) { if (URBELEGT[k].length != 21) continue; if (URBELEGT[k].charAt( 2) != '.') continue; if (URBELEGT[k].charAt( 5) != '.') continue; if (URBELEGT[k].charAt(10) != '-') continue; if (URBELEGT[k].charAt(13) != '.') continue; if (URBELEGT[k].charAt(16) != '.') continue; var von = new Date(URBELEGT[k].substr( 6,4), URBELEGT[k].substr( 3,2)-1, URBELEGT[k].substr( 0,2)); var bis = new Date(URBELEGT[k].substr(17,4), URBELEGT[k].substr(14,2)-1, URBELEGT[k].substr(11,2)); if (day >= von && day <= bis) return 1; } return 0; } /***************************************************************/ /* Lokale Callback-Funktionen */ /***************************************************************/ function KalenderRefresh() { var days = getQuestValue("questdays"); var pers = getQuestValue("questpers"); setObjHTML("urdtitle", URMNAMES[anzMonat]+" "+anzJahr); for (i = 1; i <= 42; i++) { var obj = document.getElementById("C"+i); var cla = KalenderZellenKlasse(i, "off"); setObjHTML(obj, KalenderZellenText(i)); obj.className = cla; obj.title = KalenderZellenToolTip(i); /* if (cla == "belegt") { obj.style.backgroundImage="url(js/ckbg.php?W="+obj.offsetWidth+"&H="+obj.offsetHeight+"&B=32CD32&F=B22222&M=1)"; } else { obj.style.backgroundImage=="url(js/ckbg.php?W="+obj.offsetWidth+"&H="+obj.offsetHeight+"&F=000000&M=0)";; } */ if (i == 29) if (obj.innerHTML == "") document.getElementById("R5").style.display = "none"; else document.getElementById("R5").style.display = ""; if (i == 36) if (obj.innerHTML == "") document.getElementById("R6").style.display = "none"; else document.getElementById("R6").style.display = ""; } var von = "xx.xx.xxxx"; var bis = "xx.xx.xxxx"; if (startTag) von = date2String(startTag); if (days > 0 && startTag) bis = date2String(addDays(startTag, days)); setObjHTML("urdzraum", von+" - "+bis); obj = document.getElementById("questchk1"); obj["bdisabled"] = (pers == 0); obj.className = (pers == 0) ? "bdisabled" : "bup"; obj = document.getElementById("questchk2"); obj["bdisabled"] = (pers == 0); obj.className = (pers == 0) ? "bdisabled" : "bup"; if (pers == 0) { if (getQuestValue("questchk1") > 0) setQuestValue("questchk1", 0); if (getQuestValue("questchk2") > 0) setQuestValue("questchk2", 0); } obj = document.getElementById("urdzstat"); if (!startTag) { obj.className = URZSTAT[0][0]; setAnimatedObj(obj, URZSTAT[0][1], URZSTAT[0][2], URZSTAT[0][3]); return; } if (days <= 0) { obj.className = URZSTAT[1][0]; setAnimatedObj(obj, URZSTAT[1][1], URZSTAT[1][2], URZSTAT[1][3]); return; } if (pers <= 0) { obj.className = URZSTAT[2][0]; setAnimatedObj(obj, URZSTAT[2][1], URZSTAT[2][2], URZSTAT[2][3]); return; } var bel = 0 ; for (l = 0; l <= days; l++) { var day = new Date(addDays(startTag,l)); if (isTagBelegt(day)) bel++; } if (bel > 0 && bel == days+1) { obj.className = URZSTAT[3][0]; setAnimatedObj(obj, URZSTAT[3][1], URZSTAT[3][2], URZSTAT[3][3]); } else if (bel > 0) { obj.className = URZSTAT[4][0]; setAnimatedObj(obj, URZSTAT[4][1], URZSTAT[4][2], URZSTAT[4][3]); } else { obj.className = URZSTAT[5][0]; setAnimatedObj(obj, URZSTAT[5][1], URZSTAT[5][2], URZSTAT[5][3]); } } /***************************************************************/ function KalenderTag(cid) { var adate = new Date(anzJahr, anzMonat, 1); var tagW = adate.getDay(); if (tagW == 0) tagW = 6; else tagW -= 1; var days = getMonthDays(anzJahr, anzMonat); var minc = days+tagW; if (minc%7 != 0) minc += (7-minc%7); if (cid <= tagW) return -1; if (cid-tagW > days) if (cid <= minc) return -2; else return -3; return (cid-tagW); } /***************************************************************/ function KalenderTagBelegt(cid) { var tag = KalenderTag(cid); if (tag < 0) return 0; var day = new Date(anzJahr, anzMonat, tag); return isTagBelegt(day); } /***************************************************************/ function KalenderZellenKlasse(cid, norm) { var tag = KalenderTag(cid); if (tag < 0) return ""; if (norm == "on") return norm; var day = new Date(anzJahr, anzMonat, tag); var bel = KalenderTagBelegt(cid); if (startTag) { var days = getQuestValue("questdays"); /* if (days == 0) days = 1; */ var von = startTag; var bis = addDays(startTag, days); if (day >= von && day <= bis) if (bel) return "aktbel"; else return "akt"; } if (bel) return "belegt"; if (URUSEZAUFSCHL) { var idx = getAufschlagIdx(new Date(anzJahr, anzMonat, tag)); if (idx != -1) { idx = URZAUFSCHL[idx][1]; if (idx >= 0 && idx < URSTYLES.length) return URSTYLES[idx]; else return norm; } else return norm; } return norm; } function KalenderZellenText(cid) { var tag = KalenderTag(cid); if (tag == -1) return "
"; if (tag == -2) return "
"; if (tag == -3) return ""; return (tag); } function KalenderZellenToolTip(cid) { var tag = KalenderTag(cid); if (tag < 0) return ""; if (KalenderTagBelegt(cid)) return URTTIPSS[3]; if (URUSEZAUFSCHL) { var idx = getAufschlagIdx(new Date(anzJahr, anzMonat, tag)); if (idx != -1) { idx = URZAUFSCHL[idx][1]; if (idx >= 0 && idx < URSTYLES.length) return URTTIPSD[idx]; else return ""; } else return ""; } return ""; } /***************************************************************/ function KalenderSetMenuSel() { var msel = document.getElementById("urcmenusel"); var year = getYear(jetzt); var month = getMonth(jetzt); for (i = 0; i < 25; i++) { if (year == anzJahr && month == anzMonat) { msel.options[i].selected = true; break; } month += 1; if (month == 12) { month = 0; year += 1; } } } /***************************************************************/ function KalenderSetHelpPos() { var help = document.getElementById("urdhelp"); var elem = document.getElementById("urdmain"); getObjPos(elem, elem.offsetWidth - help.offsetWidth - 4, 4); help.style.position = "absolute"; help.style.top = TOP +'px'; help.style.left = LEFT+'px'; help.style.visibility = "visible"; } function KalenderShowMenu() { var elem = (URUSEBUTTONS) ? document.getElementById("BR") : document.getElementById("urdtitle"); var menu = document.getElementById("urpopmenu"); getObjPos(elem, elem.offsetWidth, 0); /* KalenderSetMenuSel(); */ menu.style.position = "absolute"; menu.style.top = TOP +'px'; menu.style.left = LEFT+'px'; menu.style.visibility = "visible"; if (menutmo != null) window.clearTimeout(menutmo); } function KalenderShowHelp(text) { var elem = document.getElementById("urdmain"); var help = document.getElementById("urpophelp"); var htxt = document.getElementById("urhelptext"); setObjHTML(htxt, text); getObjPos(elem, (elem.offsetWidth - help.offsetWidth) / 2, 10); help.style.position = "absolute"; help.style.top = TOP +'px'; help.style.left = LEFT+'px'; help.style.visibility = "visible"; if (helptmo != null) window.clearTimeout(helptmo); } function KalenderOnChangeNSel(name, lzeros) { var val = getQuestValue(name+"sel"); setQuestValue(name, val); setObjHTML(name, leadZeroS(val, lzeros)); if (name.match("^queststart")) KalenderSTSetzen(); preiseBerechnen(); } function KalenderShowNSel(name, min, max, lzeros, setup) { var elem = document.getElementById(name); var nsel = document.getElementById("urpopnsel"); if (setup) { var amin = getObjAttr(name, "_MINSV_"); var amax = getObjAttr(name, "_MAXSV_"); if (typeof amin != "undefined") min = amin; if (typeof amax != "undefined") max = amax; var val = getQuestValue(name); var size = max-min+1; if (size > 5) size = 5; var html = ""; setObjHTML(nsel, html); } getObjPos(elem, (-1)*(nsel.offsetWidth), 0); nsel.style.position = "absolute"; nsel.style.top = TOP +'px'; nsel.style.left = LEFT+'px'; nsel.style.visibility = "visible"; nselobj = name; if (nseltmo != null) window.clearTimeout(nseltmo); } /***************************************************************/ function KalenderHidePopup(popup) { var elem = document.getElementById(popup); elem.style.visibility = 'hidden'; var obj = null; if (popup == "urpopmenu") { obj = document.getElementById("BL"); obj.className = obj["bdisabled"] ? "bdisabled" : "bup"; obj = document.getElementById("BR"); obj.className = obj["bdisabled"] ? "bdisabled" : "bup"; } if (popup == "urpophelp") { obj = document.getElementById("urdhelp"); obj.className = obj["bdisabled"] ? "bdisabled" : "bup"; } if (popup == "urpopnsel") { obj = document.getElementById("queststart_day"); obj.className = obj["bdisabled"] ? "bdisabled" : "bup"; obj = document.getElementById("queststart_month"); obj.className = obj["bdisabled"] ? "bdisabled" : "bup"; obj = document.getElementById("queststart_year"); obj.className = obj["bdisabled"] ? "bdisabled" : "bup"; obj = document.getElementById("questdays"); obj.className = obj["bdisabled"] ? "bdisabled" : "bup"; obj = document.getElementById("questpers"); obj.className = obj["bdisabled"] ? "bdisabled" : "bup"; obj = document.getElementById("questchk1"); obj.className = obj["bdisabled"] ? "bdisabled" : "bup"; obj = document.getElementById("questchk2"); obj.className = obj["bdisabled"] ? "bdisabled" : "bup"; } } function KalenderHideMenu() { menutmo = setTimeout("KalenderHidePopup('urpopmenu')", 300); } function KalenderHideHelp() { helptmo = setTimeout("KalenderHidePopup('urpophelp')", 300); } function KalenderHideNSel(name) { if (nselobj != null) if (nselobj != name) return; nseltmo = setTimeout("KalenderHidePopup('urpopnsel')", 300); } /***************************************************************/ function KalenderLinksClick() { if (anzJahr == getYear(jetzt) && anzMonat == getMonth(jetzt)) return; anzMonat -= 1; if (anzMonat == -1) { anzMonat = 11; anzJahr -= 1; } KalenderSetMenuSel(); KalenderRefresh(); doCount(1, ""); } function KalenderRechtsClick() { if (anzJahr == getYear(jetzt)+2 && anzMonat == getMonth(jetzt)) return; anzMonat += 1; if (anzMonat == 12) { anzMonat = 0; anzJahr += 1; } KalenderSetMenuSel(); KalenderRefresh(); doCount(1, ""); } function KalenderMonatSetzen() { var val = getQuestValue("urcmenusel"); anzJahr = getYear(jetzt); anzMonat = getMonth(jetzt); for (i = 0; i < val; i++) { anzMonat += 1; if (anzMonat == 12) { anzMonat = 0; anzJahr += 1; } } KalenderSetMenuSel(); KalenderRefresh(); doCount(1, ""); } function KalenderSTUpdate() { if (!startTag) return; var year = getYear(startTag); var month = getMonth(startTag)+1; var day = getDay(startTag); setQuestValue("queststart_year", leadZeroS(year,4)); setQuestValue("queststart_month", leadZeroS(month,2)); setQuestValue("queststart_day", leadZeroS(day,2)); setObjAttr("queststart_day", "_MAXSV_", getMonthDays(year, month-1)); if (year == getYear(jetzt)) setObjAttr("queststart_month", "_MINSV_", getMonth(jetzt)+1); else setObjAttr("queststart_month", "_MINSV_", 1); if (year == getYear(jetzt)+2) setObjAttr("queststart_month", "_MAXSV_", getMonth(jetzt)+1); else setObjAttr("queststart_month", "_MAXSV_", 12); } function KalenderSTSetzen() { var year = getQuestValue("queststart_year"); var month = getQuestValue("queststart_month")-1; var day = getQuestValue("queststart_day"); if (year == getYear(jetzt)) if (month < getMonth(jetzt)) month = getMonth(jetzt); if (year == getYear(jetzt)+2) if (month > getMonth(jetzt)) month = getMonth(jetzt); if ((day == 0) || (month == -1) || (year == 0)) return; var days = getMonthDays(year, month); if (day > days) day = days; anzJahr = year; anzMonat = month; startTag = new Date(year, month, day); KalenderSTUpdate(); KalenderSetMenuSel(); } /***************************************************************/ function KalenderMOverDay(cid) { var obj = document.getElementById("C"+cid); obj.className = KalenderZellenKlasse(cid, "on"); /* obj.style.backgroundImage = "url(bilder/fewo-top.jpg)" obj.style.backgroundImage="url(js/ckbg.php?W="+obj.offsetWidth+"&H="+obj.offsetHeight+"&F=000000&M=0)"; */ } function KalenderMOutDay(cid) { var obj = document.getElementById("C"+cid); obj.className = KalenderZellenKlasse(cid, "off"); } function KalenderMClickDay(cid) { /* if (KalenderTagBelegt(cid)) return; */ var tag = KalenderTag(cid); if (tag < 0) { return; } startTag = new Date(anzJahr, anzMonat, tag); KalenderSTUpdate(); preiseBerechnen(); } /***************************************************************/ function KalenderMOverButton(bid) { if (bid != "BR") { var obj = document.getElementById("BR"); obj.className = obj["bdisabled"] ? "bdisabled" : "bup"; } if (bid != "BL") { var obj = document.getElementById("BL"); obj.className = obj["bdisabled"] ? "bdisabled" : "bup"; } var obj = document.getElementById(bid); obj.className = "bdown"; KalenderShowMenu(); } function KalenderMOutButton(bid) { KalenderHideMenu(); } /***************************************************************/ function KalenderMOverNSel(name, min, max, lzeros, setup) { if (name != "queststart_day") { obj = document.getElementById("queststart_day"); obj.className = obj["bdisabled"] ? "bdisabled" : "bup"; } if (name != "queststart_month") { obj = document.getElementById("queststart_month"); obj.className = obj["bdisabled"] ? "bdisabled" : "bup"; } if (name != "queststart_year") { obj = document.getElementById("queststart_year"); obj.className = obj["bdisabled"] ? "bdisabled" : "bup"; } if (name != "questdays") { obj = document.getElementById("questdays"); obj.className = obj["bdisabled"] ? "bdisabled" : "bup"; } if (name != "questpers") { obj = document.getElementById("questpers"); obj.className = obj["bdisabled"] ? "bdisabled" : "bup"; } if (name != "questchk1") { obj = document.getElementById("questchk1"); obj.className = obj["bdisabled"] ? "bdisabled" : "bup"; } if (name != "questchk2") { obj = document.getElementById("questchk2"); obj.className = obj["bdisabled"] ? "bdisabled" : "bup"; } var obj = document.getElementById(name); if (obj["bdisabled"]) return; obj.className = "bdown"; KalenderShowNSel(name, min, max, lzeros, setup); } function KalenderMOutNSel(name) { KalenderHideNSel(name); } /***************************************************************/ function KalenderMOverHelp() { var obj = document.getElementById("urdhelp"); obj.className = "bdown"; KalenderHilfe(); } function KalenderMOutHelp() { KalenderHideHelp(); } /***************************************************************/ function KalenderHilfe() { /* var obj = document.getElementById("urdhelp"); obj.className = "bup"; */ doCount(2, ""); if (startTag == null) { KalenderShowHelp(unescape(URHILFE[0])); return; } if (getQuestValue("questdays") == 0) { KalenderShowHelp(unescape(URHILFE[1])); return; } if (getQuestValue("questpers") == 0) { KalenderShowHelp(unescape(URHILFE[2])); return; } KalenderShowHelp(unescape(URHILFE[3])); } /***************************************************************/ function preiseBerechnen() { if (URUSEZAUFSCHL) KalenderRefresh(); var days = getQuestValue("questdays"); var pers = getQuestValue("questpers"); var chk1 = getQuestValue("questchk1"); var chk2 = getQuestValue("questchk2"); if (days == 0 || pers == 0 || (!startTag && URUSEZAUFSCHLAG)) { resultLeer(); return; } var respersn = pers + chk1 + chk2; if (respersn > URMAXPERS) { resultLeer(); setObjHTML("respersn", respersn + " !!"); return; } var tagespreis = URGRUNDP; var respreis = 0; if (pers > URGRDPERS) tagespreis += (pers-URGRDPERS)*URMEHRP; if (chk1 > 0) tagespreis += chk1*URKINDK1; if (chk2 > 0) tagespreis += chk2*URKINDK2; if (URUSEZAUFSCHL && startTag && (URUSEKAUFSCHL != 1)) { for (i = 0; i < days; i++) { var day = addDays(startTag, i); var idx = getAufschlagIdx(day); var aufpreis = 0; if (idx >= 0) { aufpreis += URZAUFSCHL[idx][2]; if (pers > URGRDPERS) aufpreis += (pers-URGRDPERS)*URZAUFSCHL[idx][3]; aufpreis += chk1*URZAUFSCHL[idx][4]; aufpreis += chk2*URZAUFSCHL[idx][5]; } respreis += tagespreis + aufpreis; } } else respreis = tagespreis * days; if (URUSEKAUFSCHL) if (days >= 1 && days <= URKAUFSCHL.length) respreis = respreis + (days * URKAUFSCHL[days-1]); var resprspt = respreis / (respersn * days); respreis = respreis.toFixed(2); resprspt = resprspt.toFixed(2); setObjHTML("respersn", respersn); setObjHTML("respreis", respreis + URWAEHRUNG); setObjHTML("resprspt", resprspt + URWAEHRUNG); if (!URCOUNTINFO) return; if (!startTag || days <= 0 || respersn <= 0) return; var von = date2String(startTag); /* var bis = date2String(addDays(startTag, days)); */ var inf = von + ":" + days + ":" + respersn; for (i = 0; i < cinfo.length; i++) if (inf == cinfo[i]) return; cinfo.push(inf); doCount(0, inf); } function SetupConfig() { if (navigator.cookieEnabled) { infs = document.cookie.split(";"); for (i = 0; i < infs.length; i++) if (infs[i] == "urcmod=off") URUSECOUNTER = 0; } } function OnLoadSetup() { KalenderSetHelpPos(); KalenderSTUpdate(); if (URUSESTVALS) preiseBerechnen(); else doCount(0, ""); KalenderRefresh(); } /***************************************************************/ /* Lokale Funktionen */ /***************************************************************/ function KalenderErzeugen() { document.write(""); if (URUSEBUTTONS) { document.write(""); } document.write(""); if (URUSEBUTTONS) { document.write(""); } document.write(""); document.write(""); for (i = 0; i < 7; i++) document.write(""); document.write(""); for (row = 0; row < 6; row++) { document.write(""); for (col = 1; col <= 7; col++) { document.write(""); } document.write(""); } document.write("
«"+URMNAMES[anzMonat]+" "+anzJahr+"»
"+URWDAYS[i]+"
"); document.write(KalenderZellenText(row*7+col)+"
"); } function KalenderInfoErzeugen() { document.write("
Hilfe
"); document.write("
Kalenderlegende
"); document.write(""); for (i = 0; i < URLEGEND.length; i++) document.write(""); document.write("
   "+URLEGEND[i][1]+"
"); document.write("
"+URTEXT[1]+"
"); document.write("
xx.xx.xxxx - xx.xx.xxxx
"); document.write("
"); if (!URANIMSTATUS) document.write("("+URZSTAT[0][1]+")
"); else document.write(URZSTAT[0][1]+""); } function TitelZeileErzeugen(titel) { document.write(""+titel+""); } function DatumsFrageZeileErzeugen(name, frage, svday, svmonth, svyear) { document.write(""+frage+""); document.write(""); document.write(""); document.write(svyear); document.write(""); /* document.write("."); */ document.write(""); document.write(svmonth); document.write(""); /* document.write("."); */ document.write(""); document.write(svday); document.write(""); document.write(""); } function FrageZeileErzeugenNSel(name, frage, antwort_min, antwort_max, startval, needed) { document.write(""+frage+""); document.write(""); document.write("
"); document.write(startval); document.write("
"); } function FrageZeileErzeugenNSelInp(name, frage, antwort_min, antwort_max, startval, needed) { document.write(""+frage+""); document.write(""); document.write(""); } function FrageZeileErzeugen(name, frage, antwort_min, antwort_max, startval, needed) { if (URUSENUMSEL) { FrageZeileErzeugenNSel(name, frage, antwort_min, antwort_max, startval, needed); return; } document.write(""+frage+""); /* document.write(""); if (needed) document.write("