// common
var MONTHS = new Array();
MONTHS[1] = 'Januar';
MONTHS[2] = 'Februar';
MONTHS[3] = 'März';
MONTHS[4] = 'April';
MONTHS[5] = 'Mai';
MONTHS[6] = 'Juni';
MONTHS[7] = 'Juli';
MONTHS[8] = 'August';
MONTHS[9] = 'September';
MONTHS[10] = 'Oktober';
MONTHS[11] = 'November';
MONTHS[12] = 'Dezember';


function setOption(o, val) {
    if (o == null) {
	return;
    }
    for (i = 0; i < o.length; i++) {
	if (o[i].value == val) {
	    o[i].selected = true;
	    return;
	}
    }
}

function getCookie(name) {
        var msg = '';
        var c = document.cookie;
        if (c == '')
                return '';
        var arr = c.split(";");
        for (i = 0; i < arr.length; i++) {
                var t = arr[i].split("=");
                var k = trim(t[0]);
                if (k == name)
                        return trim(t[1]);
        }
        return '';
}

function trim(s) {
        return s.replace(/\s*(\S+.*\S+)\s*/g, '$1');
}

function setActiveArea(area) {
	var elem = document.getElementById(area);
	if (elem != null) {
		elem.style.color = "#000000";
		elem.style.background = "url('/grafiken/back-header-hauptnavi-activ.gif') repeat-x";
        	elem.style.paddingTop = "3px";
		elem.style.paddingRight = "7px";
		elem.style.borderRight = "1px solid #BCBCBC";
		elem.style.borderLeft = "1px solid #BCBCBC";
		elem.style.borderTop = "1px solid #BCBCBC";
	}
}

function reload() {
	window.location.reload();
}

function doSearch(me) {
	if (me.kat.options != null && me.kat.options.selectedIndex == 0) {
		alert('Bitte wählen Sie zuerst eine Kategorie aus.');
		return false;
	}	
	if (me.s.value == '') {
		alert('Bitte geben Sie einen Suchbegriff ein.');
		return false;
	}
	me.submit();
}

function newAnfrageS(page) {
	var url;
	if (page != null && page != '') {
		url = window.location.href;
		var t = url.split('/');
		var url2 = '';
		for (i = 0; i < t.length - 1; i++)
			url2 += t[i] + '/';
		url = url2;
	} else {		
		url = window.location.href.replace(/\.html/g, "/");
	}
	url += 'anfrage.html';
	window.location = url;
}

function newAnfrage() {
	var me = this.document.form1;
	var list = '';
	var url = window.location.href.replace(/\.html/g, "/");
	url += 'anfrage/';
	if (me.url.length == null || me.url.length == 0) {
		if (me.url.checked == true)
			list = me.url.value;
	} else {
		for (i = 0; i < me.url.length; i++) {
			if (me.url[i].checked == true)
				list += (list.length > 0 ? ';' : '') + me.url[i].value;	
		}
	}
	var data = Base64.encode(list);
	url += data;
	window.location = url;
}

function showMap() {
	var me = this.document.form1;
	var list = '';
	var url = window.location.href.replace(/\.html/g, "/");
	url += 'map/';
	if (me.url.length == null || me.url.length == 0) {
		if (me.url.checked == true)
			list = me.url.value;
	} else {
		for (i = 0; i < me.url.length; i++) {
			if (me.url[i].checked == true)
				list += (list.length > 0 ? ';' : '') + me.url[i].value;	
		}
	}
	var data = Base64.encode(list);
	url += data;
	window.location = url;
}

var baseIcon = null;

function setMarker(latlng, lfd, display, address, entry) {
        var letteredIcon = new GIcon(baseIcon);
	letteredIcon.image = "http://www.google.com/mapfiles/marker" + lfd + ".png";
        markerOptions = { icon:letteredIcon };
        var marker = new GMarker(latlng, markerOptions);
	GEvent.addListener(marker, "mouseover", function() {
		marker.openInfoWindowHtml(display + '<br/><br/><a style="font-size:0.8em" target="_blank" href="http://maps.google.de/maps?saddr=&daddr=' + address + '">Routenplaner</a>');
	});
	GEvent.addListener(marker, "click", function() {
		location.href = entry;
	});
        return marker;
}


function send() {
	var me = this.document.form1;
	var msg = '';
	if (me.ueberschrift.value == '') 
		msg += " - Überschrift Anfrage fehlt\n";	
	if (me.beschreibung.value == '') 
		msg += " - Beschreibung der Anfrage fehlt\n";	
	if (me.name.value == '') 
		msg += " - Kontaktdaten / Name fehlt\n";	
	if (me.email.value == '') 
		msg += " - Kontaktdaten / eMail fehlt\n";	
	else if (checkEmail(me.email.value) == false)
		msg += " - Kontaktdaten / eMail ungültig\n";
	if (me.captcha.value == '') 
		msg += " - Sicherheitsabfrage fehlt\n";	

	if (msg != '') {
		msg = "Fehler:\n\n" + msg;
		alert(msg);
		return false;
	}
	me.CMD.value = "SEND_ANFRAGE";
	me.submit();
}

function sendTAF() {
	var me = this.document.form1;
	var elem = document.getElementById('captcha');
	var t = elem.src.split('/');
	ref = t[t.length-1];
	var msg = '';
	if (me.name.value == '') 
		msg += "- Angabe Ihres Namens fehlt\n";
	if (me.email.value == '')
		msg += "- Angabe Ihrer eMail-Adresse fehlt\n";
	else if (checkEmail(me.email.value) == false)
		msg += "- Ihre eMail-Adresse ist fehlerhaft\n";
	if (me.name2.value == '') 
		msg += "- Angabe Empängername fehlt\n";
	if (me.email2.value == '')
		msg += "- Angabe eMail-Adresse Empfänger fehlt\n";
	else if (checkEmail(me.email2.value) == false)
		msg += "- eMail-Adresse Empfänger ist fehlerhaft\n";
	if (me.captcha.value == '') 
		msg += "- Angabe Sicherheitsabfrage fehlt\n";
	if (msg != '') {
		alert("Fehler:\n\n" + msg);
		return false;
	} else {
	
		elem = document.getElementById('dummy');
		elem.innerHTML = "<input type=\"hidden\" name=\"CMD\" value=\"SEND_TAF\">\n<input type=\"hidden\" name=\"ref\" value=\"" + ref + "\">";
		me.submit();
	}
}

function sendKontakt() {
	var me = this.document.form1;
	me.CMD.value = "SEND_KONTAKT";
	me.submit();
}

function sendHilfe() {
	var me = this.document.form1;
	me.CMD.value = "SEND_HILFE";
	me.submit();
}

function sendPwd(lostAll) {
	var me = this.document.form1;
	var msg = '';
	if (lostAll) {
		me.mode.value = 0;
		if (me.name.value == '')
			msg += "- Angabe Firma fehlt\n";
		if (me.ap_name.value == '')
			msg += "- Angabe Name fehlt\n";
		if (me.strasse.value == '')
			msg += "- Angabe Strasse fehlt\n";
		if (me.plz.value == '')
			msg += "- Angabe PLZ fehlt\n";
		if (me.ort.value == '')
			msg += "- Angabe Ort fehlt\n";
		if (me.telefon.value == '')
			msg += "- Angabe Telefon fehlt\n";
		if (me.email2.value == '')
			msg += "- Angabe eMail fehlt\n";
	} else
		me.mode.value = 1;
	me.CMD.value = "SEND_PWD";
	if (msg != '') {
		alert("Fehler:\n\n" + msg);
		return false;
	} else
		me.submit();
}

// Registrierung
function geocode() {
	initializeGM();
	var me = document.form1;
	if (me.plz.value != '' && me.ort.value != '' && me.strasse.value != '') {
		var adr = me.plz.value + " " + me.ort.value + "," + me.strasse.value + ",Germany";
		geocodeGM(adr);
		return false;
	}
}

function nextStep(step) {
    var me = document.form1;
    me.step.value = step;
    var msg = '';
    var warning = '';
    switch (step) {
	case "1":	
		var msg2 = '';
		if (me.name.value == '')
			msg2 += "    - Firmenname fehlt\n";
		if (me.strasse.value == '')
			msg2 += "    - Straße fehlt\n";
		if (me.plz.value == '')
			msg2 += "    - PLZ fehlt\n";
		if (me.ort.value == '')
			msg2 += "    - Ort fehlt\n";
		if (me.telefon.value == '')
			msg2 += "    - Telefon fehlt\n";
		if (msg2 != '')
			msg += "Die Firmenangaben sind unvollständig:\n" + msg2;
		var x = 0;
		for (i = 0; i < 100; i++) {
			var k = eval('me.kat_' + i);
			if (k == null)
				break;
			if (k.checked == true)
				x++;
		}
		if (x == 0)
			msg += "Sie müssen mindestens eine Kategorie auswählen.\n";
		msg2 = '';
		if (me.login_email.value == '')
			msg2 += "    - Angabe eMail fehlt\n";
		else {
			if (checkEmail(me.login_email.value) == false)
				msg2 += "    - eMail ist fehlerhaft\n";
			else if (me.login_email.value != me.login2.value)
				msg2 += "    - eMail stimmt nicht mit der Wiederholung überein\n";
		}
		if (me.login_pwd.value == '')
			msg2 += "    - Angabe Passwort fehlt\n";
		else if (me.login_pwd.value != me.pwd2.value)
			msg2 += "    - Passwort stimmt nicht mit der Wiederholung überein\n";
		if (msg2 != '')
			msg += "Die Zugangsdaten sind fehlerhaft:\n" + msg2;
		if (me.captcha.value == '')
			msg += "Sie müssen die Sicherheitsabfrage ausfüllen.\n";
		if (me.agb_accepted.checked != true)
			msg += "Sie müssen die AGBs akzeptieren.\n";

		if (me.lat.value == -100) 
			warning += "Die angegebene Adresse konnte auf der Landkarte nicht zugeordnet werden.\nMöglicherweise haben Sie die Adresse falsch angegeben.\nMit \"OK\" werden die Daten übernommen,\nmit \"Abbrechen\" kommen Sie zurück zur Eingabemaske.";
		break;
	case "3":
		var filled = 0;
		var msg2 = '';
		if (me.konto.value == '')
			msg2 += "    - Kontonummer fehlt\n";
		else
			filled++;
		if (me.blz.value == '')
			msg2 += "    - Bankleitzahl fehlt\n";
		else
			filled++;
		if (me.bankname.value == '')
			msg2 += "    - Bankname fehlt\n";
		else
			filled++;
		if (me.inhaber.value == '')
			msg2 += "    - Kontoinhaber fehlt\n";
		else
			filled++;
		if (filled > 0 && filled < 4) {
			msg = "Die Angaben zur Bankverbindung sind unvollständig:\n" + msg2;
		}
		break;	
    }
    if (msg != '') {
	alert('Fehler:\n\n' + msg);
	return false;
    }
    if (warning != '') {
	if (!confirm(warning))
		return false;
    }
    me.submit();
}

function changeMyLkr() {
	var me = document.form1;
	var url = "/cgi-bin/register.pl?step=-1&curr=" + me.lkr.value;
	LKR = window.open(url, 'sellkr', 'locationbar=no,menubar=no,statusbar=no,scrollbars=no,width=600,height=400,resizable=yes');
}

function fillKategories(list) {
	var me = document.form1;
	if (list.length == 0) 
		return;
	var t = list.split(',');
	for (i = 0; i < t.length; i++) {
		for (j = 0; j < 100; j++) {
			var k = eval('me.kat_' + j);
			if (k == null) {
				break;
			}
			if (k.value == t[i])
				k.checked = true;
		}
	}
}

function setCheckBox(cb, value) {
	var elem = eval('document.form1.' + cb);
	if (elem != null) {
		if (elem.value == value)
			elem.checked = true;
	}
}

function e1ProcessEmail() {
	var me = document.form1;
	if (me.email_intern.value == '')
		me.email_intern.value = me.email.value;
	if (me.login_email.value == '') {
		me.login_email.value = me.email.value;
		me.login2.value = me.email.value;
	}
}


// Anderen Kreis waehlen
var _LkrByLand;

function fillLandList() { 
	_LkrByLand = new Array();
	var me = document.form1;
	me.land.options[me.land.options.length] = new Option("Bitte Bundesland wählen ...", '');
	var data2 = Base64.decode(data);
	var l = data2.split('#');
	for (i = 0; i < l.length; i++) {
		var n = l[i].split(':');
		if (n.length != 2) {
			//alert('Fehler: ' + l[i]);
			continue;
		}
		// set land.name for n[0]
		me.land.options[me.land.options.length] = new Option(n[0], n[0]);
		var kl = new Array(n[0]);
		var k = n[1].split(';');
		for (j = 0; j < k.length; j++) {
			var e = k[j].split('|');
			if (e.length != 2)
				continue;
			var o = new Option(e[1], e[0]);
			kl.push(o);
		}
		_LkrByLand[n[0]] = kl;
	}
}

function fillLkrList() {
	var elem = document.getElementById('divsellkr');
	elem.innerHTML = "<select name=\"lkr\" onChange=\"useLkr(this);\"></select>";
	elem = document.getElementById('divuselkr');
	elem.innerHTML = "";
	var me = document.form1;
	var land = me.land.options[me.land.selectedIndex].value;
	var kl = _LkrByLand[land];
	for (i = 0; i < me.lkr.options.length; i++)
		me.lkr.options[i] = null;
	me.lkr.options.length = 0;
	me.lkr.options[me.lkr.options.length] = new Option('Bitte Kreis wählen ...', '');
	for (i = 0; i < kl.length; i++) {
		if (kl[i].text == null || kl[i].value == null)
			continue;
		me.lkr.options[me.lkr.options.length] = new Option(kl[i].text, kl[i].value);
	}
}

function useLkr() {
	var me = document.form1;
	var sel = me.lkr;
	var o = sel.options;
	var kfz = o[sel.selectedIndex].value;
	var lkr = o[sel.selectedIndex].text;
	var land = me.land.options[me.land.selectedIndex].value;
	//var elem = document.getElementById('divuselkr');
	var elem = document.getElementById('divsetlkr');
	elem.innerHTML = "<input type=\"button\" value=\"Übernehmen\" onClick=\"opener.setLkr('" + kfz + "','" + lkr + "','" + land + "');self.close();\">";
}

function setLkr(kfz, name, land) {
	var me = document.form1;
	me.lkr.value = kfz;
	var elem = document.getElementById('divshowlkr');
	if (elem != null)
		elem.innerHTML = name;
	elem = document.getElementById('divshowland');
	if (elem != null)
		elem.innerHTML = land;
	elem = document.getElementById('divnolkrfound');
	if (elem != null) {
		var s = "<p style=\"font-weight: bold;\">Ihre Firma wurde dem Landkreis <font size=\"+2\"><span id=\"divshowlkr\">" + name + "</span></font> in <span id=\"divshowland\">" + land + "</span> zugeordnet.</p>";
		s += "<p>Ist die Zuordnung korrekt, dann klicken Sie auf \"weiter zu Schritt 3\".</p>\n";
      		s += "<p>Ist die Zuordnung fehlerhaft, dann korrigieren Sie den Landkreis über \"Landkreis ändern\".</p>\n</div>\n<p>\n";
      		s += "<input class=\"submitbtn\" value=\"Landkreis ändern\" type=\"button\" onclick=\"changeMyLkr();\"/>\n";
      		s += "<input class=\"submitbtn\" value=\"weiter zu Schritt 3\" style=\"margin-left: 14px;\" onclick=\"nextStep('2');\" type=\"button\"/>\n</p>";
		elem.innerHTML = s;
		elem.className = "formblock";
	}
	var elem2 = document.getElementById('removeme');
	if (elem2 != null) 
		elem2.innerHTML = '<p>&nbsp;</p>';
}

// Geocoding via Google
    var map = null;
    var geocoder = null;

    function initializeGM() {
      if (GBrowserIsCompatible()) {
        geocoder = new GClientGeocoder();
      }
    }

    function geocodeGM(address) {
      if (geocoder) {
        geocoder.getLatLng(
          address,
          function(point) {
	    if (point != null) {
		document.form1.lng.value = point.x;
		document.form1.lat.value = point.y;
	    } else {
		document.form1.lng.value = -100;
		document.form1.lat.value = -100;
	    }
          }
        );
      }
    }

// Login
function doLogin() {
	var me = document.form1;
	me.CMD.value = 'LOGIN';
	me.submit();
}


// Kundenbereich-Start
function updateSchwerpunkte() {
	var me = this.document.form1;
	var kl = '';
	for (i = 0; i < 100; i++) {
		var kat = eval('me.kat_' + i);
		if (kat != null) {
			if (kat.checked == true) {
				if (kl != '')
					kl += ',';
				kl += kat.value;
			}
		}
	}
	var url = "/cgi-bin/admin.pl?CMD=UPD_SP&kl=" + kl;
	var elem = document.getElementById('divsplist');
	//elem.innerHTML = "<div style=\"width: 865px; height: 80px; vertical-align: middle; text-align:left;\"><br><br><br>Schwerpunkte werden aktualisiert ...</div><br> \
	elem.innerHTML = "<div class=\"formblock\"><br><br><br>Schwerpunkte werden aktualisiert ...</div><br> \
		<iframe name=\"update\" src=\"\" width=500 height=20 frameborder=0>";
	window.open(url,  "update");
}

function setCode(data) {
	var elem = document.getElementById('divsplist');
	elem.innerHTML = Base64.decode(data);
}

function deleteLogo() {
	var me = document.form1;
	me.nologo.value = "Y";
	me.logo.value = "";
	var elem = document.getElementById('divlogo');
	elem.innerHTML = '';
}

function clearLogoFlag() {
	document.form1.nologo.value = "";
}

function deleteImage(num) {
	eval('document.form1.bild_delete_' + num + '.value = "Y"');
	eval('document.form1.bild_name_' + num + '.value = ""');
	eval('document.form1.bild_' + num + '.value = ""');
	var elem = document.getElementById('divthumb_' + num);
	elem.innerHTML = '';
}

function clearImageFlag(num) {
	eval('document.form1.bild_delete_' + num + '.value = ""');
}

function saveCompanyData() {
	var me = document.form1;
	var msg = '';
	if (me.login_email.value == '')
		msg += "- Zugansdaten / eMail darf nicht leer sein\n";
	else {
		if (checkEmail(me.login_email.value) == false)
			msg += "- Zugansdaten / eMail fehlerhaft\n";
		if (me.login_email.value != me.login2.value)
			msg += "- Zugangsdaten / eMail und eMail-Wiederholung stimmen nicht überein\n";
	}
	if (me.login_pwd != null) {
		if (me.login_pwd.value == '')
			msg += "- Passwort darf nicht leer sein\n";
		else if (me.login_pwd.value != me.pwd2.value)
			msg += "- Passwort und Passwortwiederholung stimmen nicht überein\n";
	}
	if (msg != '') {
		alert("Fehler:\n\n" + msg);
		return false;
	} else {
		me.CMD.value = "SAVE";
		me.submit();
	}
}

function changePwd() {
	var elem = document.getElementById('divpwd1');
	elem.innerHTML = '<input class="eingabefeld" name="login_pwd" value="" style="width: 200px;" type="password">';
	elem = document.getElementById('divpwd2');
	elem.innerHTML = 'Passwort wiederholen:';
	elem = document.getElementById('divpwd3');
	elem.innerHTML = '<input class="eingabefeld" name="pwd2" value="" style="width: 200px;" type="password">';
}


// Kundenbereich Rechnungen
function saveBV() {
	var me = document.form1;
	me.CMD.value = "SAVE_RECHNUNGEN";
	me.submit();
}

function showRechnung(rgnr, mode, target) {
	var me = document.form1;
	if (target == 1) {
		var f = me.id.value;
		//var url = '/cgi-bin/admin.pl?CMD=SHOW_RECHNUNG&rgnr=' + rgnr + '&m=' + mode;
		var url = '/cgi-bin/admin/showRechnung.pl?CMD=SHOW_RECHNUNG&rgnr=' + rgnr + '&m=' + mode + '&f=' + f;
		window.open(url, '_blank');	
	} else {
		me.CMD.value = "SHOW_RECHNUNG";
		me.rgnr.value = rgnr;
		me.m.value = mode;
		me.submit();
	}
}


// Kundenbereich Video
function saveVideo() {
	var me = document.form1;
	me.CMD.value = "SAVE_VIDEO";
	me.submit();
}


// Kundenbereich - Angebote
function initAngebote() {
	var b = document.getElementById('baddangeb');
	if (lfd < _max) {
		var s = "<input type=\"Button\" value=\"Angebot hinzufügen\" name=\"bNewAngebot\" onClick=\"newAngebot();\" style=\"margin-left:0px;\" />";
		//if (lfd > 0) 
		//	s += "&nbsp;&nbsp;&nbsp;&nbsp; <input type=\"Button\" value=\" Angebote Speichern \" name=\"bSaveAngebot\" onClick=\"saveAngebote();\" />";
		b.innerHTML = s;
	}
}

function getAngebotFormular(lfd) {
    var ret = "<div class=\"formblock\"> \
      <h3 style=\"background-color: #B0B0B0;\">" + lfd + ". Angebot:</h3> \
      <table class=\"angeb_table\" style=\"width: 680px; margin-bottom: 10px;\" border=\"0\" cellpadding=\"2\" cellspacing=\"0\"> \
        <tbody><tr align=\"center\" valign=\"middle\"> \
          <td align=\"left\" width=\"20%\"><b>Angebot gilt:</b></td> \
          <td align=\"right\" width=\"10%\"><b>von:</b></td>\n";

    ret += getDatumDropDown('start_lfd_' + lfd);

    ret += "      <td align=\"right\" width=\"10%\"><b>bis:</b></td>\n";

    ret += getDatumDropDown('end_lfd_' + lfd);

    ret += "    </tr> \
      </tbody></table> \
      <b>Überschrift:</b> Bitte geben Sie Ihrem aktuellen Angebot eine aussagekräftige Überschrift.<br> \
      <input class=\"eingabefeld\" name=\"headline_lfd_" + lfd + "_\" style=\"width: 465px; margin-bottom: 6px;\" type=\"text\"> \
      <br> \n";

    ret += "      <b>Angebotstext:</b> Der Text wird als Fließtext dargestellt. Formatierungen sind nicht möglich und werden ignoriert. <br> \
      <textarea class=\"eingabefeld\" style=\"width: 676px; margin-bottom: 4px;\" name=\"text_lfd_" + lfd + "_\" rows=\"6\"></textarea> \
      <br> \n";

    ret += "      <b>Link:</b> Hier können Sie einen Link zu weiteren Informationen (z.B. auf Ihrer Homepage) angeben.<br>\n <input class=\"eingabefeld\" name=\"link_lfd_";

    ret += lfd + "_\" style=\"width: 465px; margin-bottom: 6px;\"> \n"; 

ret += "      <br> \n	 <table class=\"angeb_table\" style=\"width: 680px;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"> \n";

    ret += "        <tbody><tr align=\"center\" valign=\"middle\"> \
          <td align=\"left\" width=\"20%\"><b>Veröffentlichung:</b></td> \
          <td align=\"right\" width=\"10%\"><b>von:</b></td>\n"; 

    ret += getDatumDropDown('show_start_lfd_' + lfd);
    ret += "<td align=\"right\" width=\"10%\"><b>bis:</b></td>\n";
    ret += getDatumDropDown('show_end_lfd_' + lfd);

    ret += "    </tr> \n	 </tbody></table> \n	 </div> \n	 <p>  \n";

    ret += "<input style=\"margin-left: 0px;\" value=\"Angebot Löschen\" name=\"b_del_lfd_" + lfd + "\" onclick=\"doDeleteAngebot(" + lfd + ");\" type=\"button\">";
    ret += "&nbsp;&nbsp;&nbsp;&nbsp; <input type=\"Button\" value=\" Angebote Speichern \" name=\"bSaveAngebot\" onClick=\"saveAngebote();\" /></p>\n";

    return ret;
}



function getDatumDropDown(name) {
	var now = new Date();
	var curr_year = now.getFullYear();
	var ret = '<td width="10%"> \
              <select name="' + name + '_day" style="width:45px;">\n';
	for (i = 1; i < 32; i++) {
		ret += "<option value=" + i + ">" + i + "</option>\n";
	}
	ret += '	</select> \
          </td> \
          <td width="10%"> \
              <select name="' + name + '_month" style="width:90px;"> \n';
	for (i = 1; i <= 12; i++) 
		ret += '<option value="' + i + '">' + MONTHS[i] + '</option>\n';
        ret += '      </select> \
          </td> \
          <td width="10%">  \
              <select name="' + name + '_year" style="width:60px;">\n'; 
	ret += "<option value=" + curr_year + ">" + curr_year + "</option>\n";
	curr_year++;
	ret += "<option value=" + curr_year + ">" + curr_year + "</option>\n";
        ret += "      </select></td>\n";
	return ret;
}

function newAngebot() {
	lfd++;
	document.form1.bNewAngebot.blur();
	if (lfd > _max) {
		lfd = _max;
		return;
	}
	var name = 'divangeb_' + lfd;
	var elem = document.getElementById(name);
	elem.innerHTML = getAngebotFormular(lfd);
	//elem.style.border = "1px solid gray";
	//elem.style.padding = "4px";
	elem.style.marginBottom = "40px";
	elem = document.getElementById('baddangeb');
	//var s = "<input type=\"Button\" value=\" Angebote Speichern \" name=\"bSaveAngebot\" onClick=\"saveAngebote();\" />";
	var s = "";
	if (lfd == _max) {
		elem.innerHTML = s;
	} else {
		elem.innerHTML = "<input type=\"Button\" value=\"Angebot hinzufügen\" name=\"bNewAngebot\" onClick=\"newAngebot();\" style=\"margin-left: 0px;\" /> \
			&nbsp;&nbsp;&nbsp;&nbsp;" + s ;
	}
	// Datum vorbelegen:
	var today = new Date();
	eval("setOption(document.form1.start_lfd_" + lfd + "_year.options, today.getFullYear());");
	eval("setOption(document.form1.start_lfd_" + lfd + "_month.options, (today.getMonth() + 1));");
	eval("setOption(document.form1.start_lfd_" + lfd + "_day.options, today.getDate());");
	eval("setOption(document.form1.show_start_lfd_" + lfd + "_year.options, today.getFullYear());");
	eval("setOption(document.form1.show_start_lfd_" + lfd + "_month.options, (today.getMonth() + 1));");
	eval("setOption(document.form1.show_start_lfd_" + lfd + "_day.options, today.getDate());");
	today = new Date(today.getTime() + 60 * 24*60*60*1000);
	eval("setOption(document.form1.end_lfd_" + lfd + "_year.options, today.getFullYear());");
	eval("setOption(document.form1.end_lfd_" + lfd + "_month.options, (today.getMonth() + 1));");
	eval("setOption(document.form1.end_lfd_" + lfd + "_day.options, today.getDate());");
	eval("setOption(document.form1.show_end_lfd_" + lfd + "_year.options, today.getFullYear());");
	eval("setOption(document.form1.show_end_lfd_" + lfd + "_month.options, (today.getMonth() + 1));");
	eval("setOption(document.form1.show_end_lfd_" + lfd + "_day.options, today.getDate());");
}

function doDeleteAngebot(num) {
	var elem = eval("document.form1.is_saved_lfd_" + num + "_");
	isSaved = 0;
	if (elem != null)
		isSaved = elem.value;

	var name = 'divangeb_' + num;
	elem = document.getElementById(name);
	elem.innerHTML = '';
	if (num < lfd) {
		for (i = num; i < lfd; i++) {
			var tmp = copyAngebotData(i+1);	
			var name1 = 'divangeb_' + i;
			var name2 = 'divangeb_' + (i+1);
			var elem1 = document.getElementById(name1);
			var elem2 = document.getElementById(name2);
			elem1.innerHTML = replaceAngebNr(elem2.innerHTML, (i+1), i);
//alert(elem1.innerHTML.substr(7000));
			elem2.innerHTML = '';
			pasteAngebotData(i, tmp);
		}
	} else {
		var elem = document.getElementById('divangeb_' + num);
		elem.innerHTML = '';
	}
	lfd--;
	elem = document.getElementById('baddangeb');
	var s = '';
	var s1 = "<input type=\"Button\" value=\"Angebot hinzufügen\" name=\"bNewAngebot\" onClick=\"newAngebot();\" style=\"margin-left: 0px;\" />"; 
	var s2 = "<input type=\"Button\" value=\" Speichern \" name=\"bSaveAngebot\" onClick=\"saveAngebote();\" />";
	if (lfd < _max)
		s = s1 + "&nbsp;&nbsp;&nbsp;&nbsp;";
	//if (lfd > 0)
	//	s += s2;
	elem.innerHTML = s;

	if (isSaved == 1)
		saveAngebote();
}

function replaceAngebNr(code, alt, neu) {
	var pattern = "/_lfd_" + alt + "([_, ])/g";
	var dst = "_lfd_" + neu + "$1";
	code = eval('code.replace(' + pattern + ', dst);');
	pattern = "/>" + alt + ". Angebot:</g";
	dst = ">" + neu + ". Angebot:<";
	code = eval('code.replace(' + pattern + ', dst);');
	pattern = '/doDeleteAngebot\\(' + alt + '\\)/g';
	dst = "doDeleteAngebot(" + neu + ")";
	code = eval('code.replace(' + pattern + ', dst);');
	pattern = '/b_del_lfd_' + alt + '\"/g';
	dst = "b_del_lfd_" + neu + "\"";
	code = eval('code.replace(' + pattern + ', dst);');
	return code;
}

function copyAngebotData(num) {
	var me = document.form1;
	if (eval('me.start_lfd_' + num + '_day') == null)
		return;
	var o = new Object();
	o['start_day'] = eval('me.start_lfd_' + num + '_day.options.selectedIndex');
	o['start_month'] = eval('me.start_lfd_' + num + '_month.options.selectedIndex');
	o['start_year'] = eval('me.start_lfd_' + num + '_year.options.selectedIndex');
	o['end_day'] = eval('me.end_lfd_' + num + '_day.options.selectedIndex');
	o['end_month'] = eval('me.end_lfd_' + num + '_month.options.selectedIndex');
	o['end_year'] = eval('me.end_lfd_' + num + '_year.options.selectedIndex');

	o['headline'] = eval('me.headline_lfd_' + num + '_.value');
	o['text'] = eval('me.text_lfd_' + num + '_.value');
	o['link'] = eval('me.link_lfd_' + num + '_.value');

	o['show_start_day'] = eval('me.show_start_lfd_' + num + '_day.options.selectedIndex');
	o['show_start_month'] = eval('me.show_start_lfd_' + num + '_month.options.selectedIndex');
	o['show_start_year'] = eval('me.show_start_lfd_' + num + '_year.options.selectedIndex');
	o['show_end_day'] = eval('me.show_end_lfd_' + num + '_day.options.selectedIndex');
	o['show_end_month'] = eval('me.show_end_lfd_' + num + '_month.options.selectedIndex');
	o['show_end_year'] = eval('me.show_end_lfd_' + num + '_year.options.selectedIndex');
	return o;
}

function pasteAngebotData(num, o) {
	if (o == null) {
		return;
	}
	var me = document.form1;
	if (eval('me.start_lfd_' + num + '_day') == null) {
		return;
	}
	eval('me.start_lfd_' + num + '_day.options.selectedIndex = ' + o['start_day']);
	eval('me.start_lfd_' + num + '_month.options.selectedIndex = ' + o['start_month']);
	eval('me.start_lfd_' + num + '_year.options.selectedIndex = ' + o['start_year']);
	eval('me.end_lfd_' + num + '_day.options.selectedIndex = ' + o['end_day']);
	eval('me.end_lfd_' + num + '_month.options.selectedIndex = ' + o['end_month']);
	eval('me.end_lfd_' + num + '_year.options.selectedIndex = ' + o['end_year']);

	eval('me.headline_lfd_' + num + '_.value = "' + o['headline'] + '"');
	eval('me.text_lfd_' + num + '_.value = "' + o['text'] + '"');
	eval('me.link_lfd_' + num + '_.value = "' + o['link'] + '"');

	eval('me.show_start_lfd_' + num + '_day.options.selectedIndex = ' + o['show_start_day']);
	eval('me.show_start_lfd_' + num + '_month.options.selectedIndex = ' + o['show_start_month']);
	eval('me.show_start_lfd_' + num + '_year.options.selectedIndex = ' + o['show_start_year']);
	eval('me.show_end_lfd_' + num + '_day.options.selectedIndex = ' + o['show_end_day']);
	eval('me.show_end_lfd_' + num + '_month.options.selectedIndex = ' + o['show_end_month']);
	eval('me.show_end_lfd_' + num + '_year.options.selectedIndex = ' + o['show_end_year']);
}

function saveAngebote() {
	var me = document.form1;
	var offset = 60 * 24*60*60*1000;
	var today = new Date();
	today.setMilliseconds(0);
	today.setSeconds(0);
	today.setMinutes(0);
	today.setHours(0);
	var lastDate = new Date(today.getTime() + offset);

	// some checks?
	var msg = '';
	for (i = 1; i <= lfd; i++) {
		var msg2 = '';
		var d = eval("me.start_lfd_" + i + "_day.value");	
		var m = eval("me.start_lfd_" + i + "_month.value");	
		var y = eval("me.start_lfd_" + i + "_year.value");	
		var datum = new Date(y, m, d);
		if (datum.getTime() < today.getTime()) 
			msg2 += "- Start-Datum darf nicht in der Vergangenheit liegen\n";


		if (msg2 != '') 
			msg += "Fehler bei Angebot Nr. " + i + ":\n" + msg2 + "\n\n";
	}
	if (msg != '') {
		alert(msg);
	} else {
		me.CMD.value = "SAVE_ANGEBOTE";
		me.submit();	
	}
}


// Kundenbereich-Impressum

function saveImpressum() {
	// some checks?
	var me = document.form1;
	me.CMD.value = "SAVE_IMPRESSUM";
	me.submit();	
}


// Kundenbereich Kuendigung
function doCancel(mode) {
	var me = document.form1;
	me.CMD.value = "SAVE_KUENDIGUNG";
	me.m.value = mode;
	me.submit();	
}

// diverses

function checkEmail(email) {
	var t = email.split('@');
	if (t.length != 2)
		return false;
	t = t[1].split('.');
	if (t.length < 2)
		return false;
	return true;
}

function createURL(url) {
	url = url.replace(/\[.*\]/, '');	
	url = url.replace(/\(.*\)/, '');	
	url = url.replace(/ä/, 'ae');	
	url = url.replace(/Ä/, 'Ae');	
	url = url.replace(/ö/, 'oe');	
	url = url.replace(/Ö/, 'Oe');	
	url = url.replace(/ü/, 'ue');	
	url = url.replace(/Ü/, 'Ue');	
	url = url.replace(/ß/, 'ss');	
	url = url.replace(/ /, '-');	
	url = url.replace(/\./, '-');	
	url = url.replace(/\//, '-');	
	url = url.replace(/-+/, '-');	
	url = url.replace(/-+$/, '');	
	url = url.replace(/(-+)/, '');

        return url;
}

var Base64 = {

    // private property
    _keyStr : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",

    // public method for encoding
    encode : function (input) {
        var output = "";
        var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
        var i = 0;

        input = Base64._utf8_encode(input);

        while (i < input.length) {

            chr1 = input.charCodeAt(i++);
            chr2 = input.charCodeAt(i++);
            chr3 = input.charCodeAt(i++);

            enc1 = chr1 >> 2;
            enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
            enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
            enc4 = chr3 & 63;

            if (isNaN(chr2)) {
                enc3 = enc4 = 64;
            } else if (isNaN(chr3)) {
                enc4 = 64;
            }

            output = output +
            this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) +
            this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4);

        }

        return output;
    },

    // public method for decoding
    decode : function (input) {
        var output = "";
        var chr1, chr2, chr3;
        var enc1, enc2, enc3, enc4;
        var i = 0;

        input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");

        while (i < input.length) {

            enc1 = this._keyStr.indexOf(input.charAt(i++));
            enc2 = this._keyStr.indexOf(input.charAt(i++));
            enc3 = this._keyStr.indexOf(input.charAt(i++));
            enc4 = this._keyStr.indexOf(input.charAt(i++));

            chr1 = (enc1 << 2) | (enc2 >> 4);
            chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
            chr3 = ((enc3 & 3) << 6) | enc4;

            output = output + String.fromCharCode(chr1);

            if (enc3 != 64) {
                output = output + String.fromCharCode(chr2);
            }
            if (enc4 != 64) {
                output = output + String.fromCharCode(chr3);
            }

        }

        output = Base64._utf8_decode(output);

        return output;

    },

    // private method for UTF-8 encoding
    _utf8_encode : function (string) {
        string = string.replace(/\r\n/g,"\n");
        var utftext = "";

        for (var n = 0; n < string.length; n++) {

            var c = string.charCodeAt(n);

            if (c < 128) {
                utftext += String.fromCharCode(c);
            }
            else if((c > 127) && (c < 2048)) {
                utftext += String.fromCharCode((c >> 6) | 192);
                utftext += String.fromCharCode((c & 63) | 128);
            }
            else {
                utftext += String.fromCharCode((c >> 12) | 224);
                utftext += String.fromCharCode(((c >> 6) & 63) | 128);
                utftext += String.fromCharCode((c & 63) | 128);
            }

        }

        return utftext;
    },

    // private method for UTF-8 decoding
    _utf8_decode : function (utftext) {
        var string = "";
        var i = 0;
        var c = c1 = c2 = 0;

        while ( i < utftext.length ) {

            c = utftext.charCodeAt(i);

            if (c < 128) {
                string += String.fromCharCode(c);
                i++;
            }
            else if((c > 191) && (c < 224)) {
                c2 = utftext.charCodeAt(i+1);
                string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
                i += 2;
            }
            else {
                c2 = utftext.charCodeAt(i+1);
                c3 = utftext.charCodeAt(i+2);
                string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
                i += 3;
            }

        }

        return string;
    }

}


