/* Randbedingungen - Tarife (stunde, tag, wochenende, woche) - Konditionen (inkl. Km ) - Zusatz (Optionen, zus. Km, Versicherung) Funktionen - Zeit, Tage, Wochenende, istSelberTag - Tarif (tage, stunde) - zusatz einbeziehen (Pauschal oder pro Tag) Ablauf ini() - holeTage() --> tage, wochenende, selberTag - stunde = holeZeit() - preisTarif = holeTarif(tage, stunde); - extraPreis - extraKm */ /* Globale Variablen */ // Variablen für die Selektoren der css-id Elemente var from = "#ctrl_50", // von Datum to = "#ctrl_52", // bis Datum startZeit = "#ctrl_51", // von Zeit endZeit = "#ctrl_53", // bis Zeit sbPolice = "#opt_68_0", // Checkbox Versicherung sbVersicherung = "#ctrl_65", // Auswahl der Versicherung gurt = "#opt_68_1", // Checkbox Zurrgurt mit Ratsche kare = "#opt_68_3", // Checkbox Sackkare anhaengerKupplung = "#opt_68_2", // Checkbox Anhänger Kupplung zusKm = "#ctrl_69", // Auswahl für zusätzliche Kilometer preiseErmittel = "#preiseErmittel", // Button für Preisermittlung ausgTarif = "#gTarif", // Ausgabe des gewählten Tarif: Preis anzTage = "#anzTage", // Dauer in Tagen: Anzahl tarifPreis = "#vTarif", // Ausgabe des SB-Preises: Preis zurGurt = "#zurGurt", // Ausgabe des Ratschenpreises: Preis gKm = "#extrKm", // Ausgabe des Preises für extra Kilometer: Preis anzahlStunden = "#anzStunden", // Dauer in Stunden: Anzahl kilometerInklusive = "#inklKM", // Ausgabe der inklusive Kilometer nachlass = "#nachlass", // erteilter Nachlass: Prozent summe = "#gesamtPreis", // Ausgabe Gesamtbetrag: Preis finalPreis = "#endPreis"; // Preis nach Nachlass // Minimale Mietdauer var minDauer = 3; // Abgabefrist Stunden var frist = 4; // Tarife var tarif = new Array(); tarif[""] = 0.00; tarif["std"] = 15.00; tarif["tag"] = 70.00; tarif["wEnde"] = 180.00; tarif["woche"] = 300.00; var dauer = new Array(); dauer[""] = 0; dauer["tage"] = 0; dauer["wochenende"] = false; dauer["selberTag"] = false; var option = new Array(); option["versicherung"] = false; option["gurt"] = false; option["anhaenger"] = false; option["sackkare"] = false; var optionsPreis = new Array(); optionsPreis["sb800"] = 20 ; // pro Tag optionsPreis["sb1000"] = 15 ; // pro Tag optionsPreis["sb2000"] = 10 ; // pro Tag optionsPreis["gurt"] = 5; // pauschal optionsPreis["anhaenger"] = 10; // pro Tag optionsPreis["sackkare"] = 5; // pauschal optionsPreis["extraKmPreis"] = 0.25; // pauschal // berechne Leihdauer in Stunden var holeZeit = function(){ var zeitDauer = ($(endZeit).val()- $(startZeit).val())/100; return zeitDauer; } // berechne Leihdauer Tage und prüfe auf Wochenende var holeTage = function(){ var selectedFrom = $(from).datepicker("getDate"), selectedTo = $(to).datepicker("getDate"); //prüfe auf Wochenende dauer["wochenende"] = istWochenende(selectedFrom.getUTCDay(), selectedTo.getUTCDay()); //prüfe ob selber Tag dauer["selberTag"] = istSelberTag(selectedFrom.getUTCDay(), selectedTo.getUTCDay()); // millisekunden pro Tag msDay = 24*60*60*1000; // Berechne differenz (Anz. Tage) dauer["tage"] = parseInt((selectedTo -selectedFrom)/msDay); // prüfe ob überzogen if (tage > 0 && dauer["selberTag"] === false && holeZeit() > frist ) { dauer["tage"] = dauer["tage"] + 1; } } var istWochenende = function(von, bis){ if ( von === 4 && bis === 0 || von === 5 && bis === 6) { return true; } else { return false; } } var istSelberTag = function(von, bis){ if(von != bis && holeZeit() > 4){ return false; } else { return true; } } var holeTarif = function(tage, stunde){ if (dauer["wochenende"] === true) { // prüfe ob Wochende return tarif["wEnde"]; } else if (tage === 0){ // prüfe ob nur ein Tag gewählt wurde // prüfe ob weniger als minDauer if (stunde <= minDauer) { return minDauer*tarif["std"]; } else if (stunde <= 4.5 && stunde >= minDauer) { return stunde*tarif["std"]; } else { return tarif["tag"]; } } else { // Falls mehr Tage und nicht selber Tag if (tage < 7){ return tage*tarif["tag"]; } else { return (Math.round(tage/7))*tarif["woche"] + (tage%7)*tarif["tag"]; } } } var holeExtraPreis = function(){ var extraPreis = 0; if (willExtra($(sbPolice), $(sbVersicherung))){ extraPreis = holeVersicherung($(sbVersicherung).val()); } if (willExtra($(gurt), $(zurGurt))){ extraPreis = extraPreis + holeOptionPauschal($(gurt).val()); } if (willExtra($(kare), $(karePreis))){ extraPreis = extraPreis + holeOptionPauschal($(kare).val()); } if (willExtra($(anhaengerKupplung), $(anhaengerPreis))){ extraPreis = extraPreis + holeOptionProTag(dauer["tage"], $(anhaengerKupplung).val()); } return extraPreis; } var willExtra = function(selector, output){ if ($(selector+":checked").val()){ return true; $(output).fadeIn("slow"); } else { return false; $(output).fadeOut("slow"); } } var holeVersicherung = function(sb){ return holeOptionProTag(dauer["tage"], parseFloat(optionsPreis[sb])); } var reset = function(){ return 0; } var holeOptionPauschal = function(preis){ return preis; } var holeOptionProTag = function(tage, preis){ return (tage+1)*preis; } var ausgabe = function(endPreis){ $(preis).html(endPreis.toFixed(2)); } var init = function(){ holeTarif(holeTage(), holeZeit()); holeExtraPreis(); holeExtraKm(); ausgabe(); }