// Bestands Version, nur -kompatible- Bugfixes erlaubt!
teltarif = {
  isNumeric: function(s) { 
        return s.search("^[0-9]+$") == 0;
  },
    
  finishAnschluss: function() {
        return true;
  },
    
  finishAnschlusstyp: function() {
        return true;
  },
    
  finishAktBreitband: function() {
        return true;
  },
    
  finishBbtyp: function() {
    if(! document.getElementById) {
      return true;
    }
    var alles = document.getElementById('alles');
    var dsl = document.getElementById('dsl');
    var tvkabel = document.getElementById('tvkabel');
    var mobilfunk = document.getElementById('mobilfunk');
    var sat = document.getElementById('sat');
    var wimax = document.getElementById('wimax');
    var powerline = document.getElementById('powerline');
    var remark1 = document.getElementById("remark1");
    var remark2 = document.getElementById("remark2");
    var remark3 = document.getElementById("remark3");
    if(mobilfunk && mobilfunk.checked) {
        if(remark1) {
            document.abfrage.downstream.value = "384";
            document.abfrage.upstream.value = "64";
            remark1.style.display = "block";
        }
    } else {
        if(remark1) {
            remark1.style.display = "none";
        }
    }
    if(sat && sat.checked) {
        if(remark2) {
	    document.abfrage.upstream.value = "64";
            remark2.style.display = "block";
        }
    } else {
        if(remark2) {
            remark2.style.display = "none";
        }
    }
    if(alles && alles.checked) {
      if ((dsl && ! dsl.checked) ||
          (tvkabel && ! tvkabel.checked) ||
          (mobilfunk && ! mobilfunk.checked) ||
          (sat && ! sat.checked) ||
          (wimax && ! wimax.checked) ||
          (powerline && ! powerline.checked))    {
        alles.checked = false;
      }
    }
    if(((tvkabel && tvkabel.checked) ||
       (wimax && wimax.checked) ||
       (powerline && powerline.checked)) &&
       (document.abfrage.vonnr.value == "")) {
        if(remark3) {
            remark3.style.display = "block";
        }
        document.abfrage.vonnr.focus();
    }
    if(((tvkabel && ! tvkabel.checked) &&
       (wimax && ! wimax.checked) &&
       (powerline && ! powerline.checked)) ||
       (document.abfrage.vonnr.value != "")) {
        if(remark3) {
            remark3.style.display = "none";
        }
    }
    return true;
  },

  finishBbtypalles: function() {
    if(! document.getElementById) {
      return true;
    }
    var alles = document.getElementById('alles');
    var dsl = document.getElementById('dsl');
    var tvkabel = document.getElementById('tvkabel');
    var mobilfunk = document.getElementById('mobilfunk');
    var sat = document.getElementById('sat');
    var wimax = document.getElementById('wimax');
    var powerline = document.getElementById('powerline');
    if(alles.checked) {
        if (dsl) {
            dsl.checked = true;
        }
        if (tvkabel) {
            tvkabel.checked = true;
        }
        if (mobilfunk) {
            mobilfunk.checked = true;
        }
        if (sat) {
            sat.checked = true;
        }
        if (wimax) {
            wimax.checked = true;
        }
        if (powerline) {
            powerline.checked = true;
        }
    } else {
        if (dsl) {
            dsl.checked = true;
        }
        if (tvkabel) {
            tvkabel.checked = true;
        }
        if (mobilfunk) {
            mobilfunk.checked = false;
        }
        if (sat) {
            sat.checked = false;
        }
        if (wimax) {
            wimax.checked = false;
        }
        if (powerline) {
            powerline.checked = false;
        }
    }
    this.finishBbtyp();
    return true;
  },
    
  changeProfil: function() {
	var index = document.abfrage.dslprofil.selectedIndex;
	var dauer, mb;
	if(index >= -1) {
	    switch(index) {
		case 0: dauer = 25;
			mb = 1150;
			break;

		case 1: dauer = 60;
			mb = 2250;
			break;

		case 2: dauer = 80;
			mb = 4500;
			break;

		case 3: dauer = "unbegrenzt";
			mb = 50000;
			break;

		case 4: dauer = 300;
			mb = 5500;
			break;
		
		case 5: dauer = "unbegrenzt";
                        mb = "unbegrenzt";
                        break;
	    }
	    document.abfrage.dauer.value = dauer;
	    document.abfrage.mb.value = mb;
	}
    },

    finishVorwahl: function() {
	if(document.abfrage.vonnr.value != "" && 
          ! this.isNumeric(document.abfrage.vonnr.value)) {
	    alert("Die Ortsvorwahl bitte numerisch angeben!");
	    document.abfrage.vonnr.focus();
	    return false;
	}
        return true;
    },

    finishDownstream: function() {
	if(document.abfrage.downstream.value == "" || 
          ! this.isNumeric(document.abfrage.downstream.value) || 
	   document.abfrage.downstream.value <= 0) {  
	    alert("Die Angabe des minimalen Downstreams ist nicht verwertbar!");
	    document.abfrage.downstream.focus();
	    return false;
	}
        return true;
    },

    finishUpstream: function() {
	if(document.abfrage.upstream.value == "" || 
          ! this.isNumeric(document.abfrage.upstream.value) || 
	   document.abfrage.upstream.value <= 0) {
	    alert("Die Angabe des minimalen Upstreams ist nicht verwertbar!");
	    document.abfrage.upstream.focus();
	    return false;
	}
        return true;
    },

    finishProfil: function() {
	if(document.abfrage.dauer.value != "unbegrenzt" &&
	   (document.abfrage.dauer.value == "" || 
	    ! this.isNumeric(document.abfrage.dauer.value) || 
	    document.abfrage.dauer.value <= 0)) {
	    alert("Die Onlinestunden in den Nutzungsdetails " +
                  "sollten grösser 0 sein, oder \"unbegrenzt\"!");
	    document.abfrage.dauer.focus();
	    return false;
	}
	if(document.abfrage.mb.value != "unbegrenzt" &&
	   (document.abfrage.mb.value == "" || 
	    ! this.isNumeric(document.abfrage.mb.value) || 
	    document.abfrage.mb.value <= 0)) {
	    alert("Die Megabytes in den Nutzungsdetails " +
                  "sollten grösser 0 sein, oder \"unbegrenzt\"!");
	    document.abfrage.mb.focus();
	    return false;
	}
	return true;
    },

    finishForm: function() {
        if(! this.finishDownstream()) {
            return false;
        }
        if(! this.finishVorwahl()) {
            return false;
        }
	if(! this.finishProfil()) {
	    return false;
        }
        var index = document.abfrage.anschluss.selectedIndex;
	if(document.abfrage.anschlusstyp.value == "fest" && 
           index == 0) {
	    document.abfrage.anschlusstyp.focus();
	    alert("Ein Anschlusswechsel ist hier notwendig!");
            document.abfrage.anschlusstyp.value = "frei"
	    return false;
	}

	if(document.abfrage.anschlusstyp.value == "fest" && 
           document.abfrage.anschluss.value == "") {
	    alert("Ihr Telefonanschluss-Anbieter ermöglicht nicht die " + 
              "Auswahl zwischen verschiedenen Breitband-Anschlüssen. " +
              "Wenn für Sie der Wechsel des Anbieters nicht in Frage kommt, " +
              "sprechen Sie am besten direkt mit Ihrem Anbieter, " +
              "ob der Wechsel in ein günstigeres und/oder " +
              "leistungsfähigeres Tarifmodell möglich ist. " +
              "In der Regel ist dieses nach Ablauf der " +
              "Mindestvertragslaufzeit der Fall.");
	    document.abfrage.anschlusstyp.focus();
	    return false;
	}
        if(document.getElementById) {
            var dsl = document.getElementById('dsl');
            var tvkabel = document.getElementById('tvkabel');
            var mobilfunk = document.getElementById('mobilfunk');
            var sat = document.getElementById('sat');
            var wimax = document.getElementById('wimax');
            var powerline = document.getElementById('powerline');
            var alles = document.getElementById('alles');
	    if( document.abfrage.vonnr.value == "" &&
                (tvkabel && tvkabel.checked || 
                 powerline && powerline.checked || 
                 wimax && wimax.checked)  && 
               ! (dsl && dsl.checked || 
                 mobilfunk && mobilfunk.checked || 
                 sat && sat.checked) ) {
	        alert("Leider sind die Technologien TV-Kabel, PowerLine " + 
                  "und WiMAX nur stark regional begrenzt und nicht " +
                  "Deutschlandweit verfügbar. Bitte geben Sie die Ortsvorwahl " +
                  "ihrer gewünschten Region an und informieren " +
                  "sich in jedem Falle bei den angegebenen Anbietern " +
                  "über die Verfügbarkeit am gewünschten Einsatzort. "  );
	        document.abfrage.vonnr.focus();
	        return false;
	    }
            if( ! (alles && alles.checked || 
                   dsl && dsl.checked || 
                   tvkabel && tvkabel.checked ||
                   mobilfunk && mobilfunk.checked ||
                   sat && sat.checked ||
                   wimax && wimax.checked ||
                   powerline && powerline.checked ||
		   !alles && !dsl && !tvkabel && !mobilfunk && !sat && !wimax && !powerline)) {
                alert("Wir empfehlen die Auswahl einer Breitband-Technologie," +
                      " wie z.B. DSL !");
                if(dsl) {
                    dsl.checked = true;
                }
                return false;
            }
        }
        return true;
    }
};

