////////// Fehlerdefinitionen f&uuml;r Anfrage und Registrierung //////
var unfilled = "Bitte füllen Sie dieses Feld aus!";
var unfilledWithCheckbox = "Bitte füllen Sie dieses Feld aus oder verwenden Sie eine Auswahl!";
var invalid = "Diese E-Mail-Adresse ist nicht gültig!";
var nourl = "Die Angabe von URLs ist nicht gestattet!";
var pwdlen = "Das Passwort muss min. 6 Zeichen haben!";
var sent = "<strong>Vielen Dank!</strong><br />Ihre Anfrage ist bei uns eingegangen. Sie werden in Kürze von uns eine Antwort an Ihre angegebene E-Mail-Adresse erhalten.";
var registered1 = "<strong>Fehler!</strong><br />Sie sind bereits registriert und freigeschaltet. <a title='Melden Sie sich hier für unseren internen Bereich an' href='javascript:void(0)' onclick='layerSelect(1)'>Bitte melden Sie sich mit Ihren Zugangsdaten an.</a>.";
var registered2 = "<strong>Fehler!</strong><br />Sie sind bereits registriert aber noch nicht freigeschaltet. Bitte warten Sie auf die Freischaltung und unsere Bestätigung per E-Mail.";
var regist = "<strong>Vielen Dank!</strong><br />Ihre Registrierung wird nun überprüft. Sie werden in Kürze Ihre Zugangsdaten an Ihre angegebene E-Mail-Adresse erhalten.";
var loginFailed = "<strong>Login ist fehlgeschlagen!</strong><br />Haben Sie sich registriert und eine Bestätigungsmail von uns erhalten? Falls ja, überprüfen Sie bitte noch einmal Ihre Eingaben."
var notActivated = "<strong>Login ist fehlgeschlagen!</strong><br />Ihre Registrierung wurde noch nicht aktiviert. Bitte warten Sie auf die Freischaltung und unsere Bestätigung per E-Mail.";
//////////////////////////////////////////////////////////////////


////// Beschreibungstext ein-/ausblenden /////////////////////////
function switchLayer(id) {
var expander = document.getElementById("expander" + id);

if(expander.style.display == 'none') {
new Effect.SlideDown(expander, {duration: 1.0});
} else {
new Effect.SlideUp(expander, {duration: 1.0});
}

}
////// Formular-Auswahl ///////////////////////////////////////////
function layerSelect(which) {
var fld0 = document.getElementById('field0');
var fld1 = document.getElementById('field1');
var frm0 = document.getElementById('form0');
var frm1 = document.getElementById('form1');
var expander = document.getElementById("expander");
  
if(expander.style.display=='none') {
new Effect.SlideDown(expander, {duration: 1.0});
  } else {
new Effect.Opacity(expander, {from: 0.0, to: 1.0, duration: 0.8 });
  }

switch(which) {
  case 0:
  fld0.style.backgroundImage='url(../images/radio_filled.gif)';
  fld1.style.backgroundImage='url(../images/radio_blank.gif)';
  frm0.style.display='block';
  frm1.style.display='none';
  break;
  case 1:
  fld1.style.backgroundImage='url(../images/radio_filled.gif)';
  fld0.style.backgroundImage='url(../images/radio_blank.gif)';
  frm1.style.display='block';
  frm0.style.display='none';
  break;
  }
}
////// Anfrageformular Allgemein ////////////////////////////////
function enquiry_all() {
var namefld = document.getElementById('name');
var emailfld = document.getElementById('email');
var subjectfld = document.getElementById('subject');
var enquiryfld = document.getElementById('enquiry');
var msgfld = document.getElementById('msg');

var txt;
var fld;
var success;

// Validieren
if (namefld.value == "" || namefld.value == unfilled) {
txt = unfilled;
fld = namefld;
success = false;
} else if (emailfld.value == "" || emailfld.value == unfilled) {
txt = unfilled;
fld = emailfld;
success = false;
} else if (enquiryfld.value == "" || enquiryfld.value == unfilled) {
txt = unfilled;
fld = enquiryfld;
success = false;
} else if ((emailfld.value.search("@") == -1) || (emailfld.value.search("[.*]" ) == -1)) {
txt = invalid;
fld = emailfld;
success = false;
} else if (namefld.value.search("http") != -1) {
txt = nourl;
fld = namefld;
success = false;
} else if (subjectfld.value.search("http") != -1) {
txt = nourl;
fld = subjectfld;
success = false;
} else if (enquiryfld.value.search("http") != -1) {
txt = nourl;
fld = enquiryfld;
success = false;
} else {
txt = sent;
success = true;
}

if (success == false) {
fld.value = txt;
} else {
// Danke-Text einblenden
msgfld.innerHTML = txt;
new Effect.Appear('msg', {from: 0.0, to: 1.0, duration: 1.0 })

// Danke-Text ausblenden
window.setTimeout("new Effect.Fade('msg', {from: 1.0, to: 0.0, duration: 0.5 })",5000);

// Anfrageformular senden
agent.call('','send_anfrage','',escape(namefld.value),emailfld.value,escape(subjectfld.value),escape(enquiryfld.value));

// Formular zur&uuml;cksetzen
document.frm0.reset();
}
}

////// Anfrageformular Veranstaltung ////////////////////////
function enquiry_event() {
var anredefld = document.getElementById('anrede');
var companyfld = document.getElementById('company');
var namefld = document.getElementById('nam');
var streetfld = document.getElementById('street');
var plzfld = document.getElementById('plz');
var cityfld = document.getElementById('city');
var telfld = document.getElementById('tel');
var faxfld = document.getElementById('fax');
var emailfld = document.getElementById('mail');
var datefld = document.getElementById('dat');
var timefld = document.getElementById('time');
var artfld = document.getElementById('art');
var persfld = document.getElementById('pers');
var addonfld = document.getElementById('addon');
var geschirrfld = document.getElementById('geschirr');
var personalfld = document.getElementById('personal');
var tischefld = document.getElementById('tische');
var glaeserfld = document.getElementById('glaeser');
var getraenkefld = document.getElementById('getraenke');
var dekofld = document.getElementById('deko');
var budgetfld = document.getElementById('budget');
var enquiryfld = document.getElementById('mess');
var msgfld = document.getElementById('msg');

var txt;
var fld;
var success;

// Validieren
if ((anredefld.value == "Firma") && (companyfld.value == "" || companyfld.value == unfilled)) {
txt = unfilled;
fld = companyfld;
success = false;
} else if (namefld.value == "" || namefld.value == unfilled) {
txt = unfilled;
fld = namefld;
success = false;
} else if (streetfld.value == "" || streetfld.value == unfilled) {
txt = unfilled;
fld = streetfld;
success = false;
} else if (cityfld.value == "" || cityfld.value == unfilled) {
txt = unfilled;
fld = cityfld;
success = false;
} else if (telfld.value == "" || telfld.value == unfilled) {
txt = unfilled;
fld = telfld;
success = false;
} else if (emailfld.value == "" || emailfld.value == unfilled) {
txt = unfilled;
fld = emailfld;
success = false;
} else if (datefld.value == "" || datefld.value == unfilled) {
txt = unfilled;
fld = datefld;
success = false;
} else if (timefld.value == "" || timefld.value == unfilled) {
txt = unfilled;
fld = timefld;
success = false;
} else if (persfld.value == "" || persfld.value == unfilled) {
txt = unfilled;
fld = persfld;
success = false;
} else if ((geschirrfld.checked == false && personalfld.checked == false && tischefld.checked == false && glaeserfld.checked == false && getraenkefld.checked == false && dekofld.checked == false) && (addonfld.value == "" || addonfld.value == unfilled)) {
txt = unfilledWithCheckbox;
fld = addonfld;
success = false;
} else if ((emailfld.value.search("@") == -1) || (emailfld.value.search("[.*]" ) == -1)) {
txt = invalid;
fld = emailfld;
success = false;
} else {
txt = sent;
success = true;
}


if (success == false) {
fld.value = txt;
} else {
// Danke-Text einblenden
msgfld.innerHTML = txt;
new Effect.Appear('msg', {from: 0.0, to: 1.0, duration: 1.0 })

// Danke-Text ausblenden
window.setTimeout("new Effect.Fade('msg', {from: 1.0, to: 0.0, duration: 0.5 })",5000);

var wunsch = "Gew&uuml;nscht wird:\n";
if(geschirrfld.checked == true) wunsch += "- Geschirr\n";
if(personalfld.checked == true) wunsch += "- Personal\n";
if(tischefld.checked == true) wunsch += "- Tische/St&uuml;hle\n";
if(glaeserfld.checked == true) wunsch += "- Gl&auml;ser\n";
if(getraenkefld.checked == true) wunsch += "- Getr&auml;nke\n";
if(dekofld.checked == true) wunsch += "- Dekoration\n";
if(addonfld.value != "") wunsch += "- " + addonfld.value + "\n";

// Anfrageformular senden
agent.call('','send_event','',anredefld.value,escape(companyfld.value),escape(namefld.value),escape(streetfld.value),plzfld.value,escape(cityfld.value),telfld.value,faxfld.value,emailfld.value,datefld.value,timefld.value,artfld.value,persfld.value,escape(wunsch),budgetfld.value,escape(enquiryfld.value));

// Formular zurücksetzen
document.frm1.reset();
}
}

////// Registrierungsformular ///////////////////////////////////////////////////////////////////////////
function register() {
firstnamefld = document.getElementById('firstname');
lastnamefld = document.getElementById('lastname');
emailfld = document.getElementById('email');
passfld = document.getElementById('passwort');
messagefld = document.getElementById('msg');

var txt;
var fld;
var success;

// Validieren
if (firstnamefld.value == "" || firstnamefld.value == unfilled) {
txt = unfilled;
fld = firstnamefld;
success = false;
} else if (lastnamefld.value == "" || lastnamefld.value == unfilled) {
txt = unfilled;
fld = lastnamefld;
success = false;
} else if (emailfld.value == "" || emailfld.value == unfilled) {
txt = unfilled;
fld = emailfld;
success = false;
} else if ((emailfld.value.search("@") == -1) || (emailfld.value.search("[.*]" ) == -1)) {
txt = invalid;
fld = emailfld;
success = false;
} else if (passfld.value == "") {
//passfld.type = 'text'; 
txt = "";
fld = passfld;
success = false;
alert("Bitte füllen Sie das Feld Passwort aus!");
} else if (passfld.value.length < 6) {
//passfld.type = 'text'; 
txt = "";
fld = passfld;
success = false;
alert("Das Passwort muss min. 6 Zeichen haben!");
} else {
success = true;
}

if (success == false) {
fld.value = txt;
} else {
// Eintrag überprüfen
// Leerzeichen entfernen
var mail_zwsch = emailfld.value.split(" ");
var mail_neu = mail_zwsch.join("");
var email = mail_neu; 
GetEmailAdr(email); 
}
}
// Eintrag überprüfen ///////////////////
function GetEmailAdr(mail) {
agent.call('','GetEmail','GetEmail_Callback',escape(mail));
}
function GetEmail_Callback(code) {
var splitter = code.split("&");
var mail = splitter[0];
var stat = splitter[1];
var text;
var reg;

if(mail == 1) {
if(stat == 1) {
reg = 0;
text = registered1;
} else {
reg = 0;
text = registered2;
}
} else {
reg = 1;
text = regist;
}

SendReg(reg, text);
}
// Nachricht einblenden/Eintrag senden ///////
function SendReg(reg, text) {
//Text einblenden
messagefld.innerHTML = text;
new Effect.Appear('msg', {from: 0.0, to: 1.0, duration: 1.0 })
//Text ausblenden
window.setTimeout("new Effect.Fade('msg', {from: 1.0, to: 0.0, duration: 0.5 })",10000);
// Anfrageformular senden
if(reg == 1) {
agent.call('','SendRegister','',escape(firstnamefld.value),escape(lastnamefld.value),emailfld.value,escape(passfld.value));
}
// Formular zurücksetzen
document.frm0.reset();
}
////// Ende Registrierungsformular //////////////////////////////////////////////////////////////////////////////////


////// Anmeldeformular /////////////////////////////////////////////////////////////////////////////////////////////
function GetLogIn() {
var usr = document.getElementById('user');
var pas = document.getElementById('pwd');

agent.call('','LogIn','LogIn_Callback',usr.value,pas.value);
}
function LogIn_Callback(ob) {
var messagefld = document.getElementById('msg');

if(ob == 0) {
//Text einblenden
messagefld.innerHTML = loginFailed;
new Effect.Appear('msg', {from: 0.0, to: 1.0, duration: 1.0 })
//Text ausblenden
window.setTimeout("new Effect.Fade('msg', {from: 1.0, to: 0.0, duration: 0.5 })",10000);
} else if(ob == 2) {
messagefld.innerHTML = notActivated;
new Effect.Appear('msg', {from: 0.0, to: 1.0, duration: 1.0 })
//Text ausblenden
window.setTimeout("new Effect.Fade('msg', {from: 1.0, to: 0.0, duration: 0.5 })",10000);
} else {
window.location.reload();
}
}
////// Ende Anmeldeformular ////////////////////////////////////////////////////////////////////////////////////////


/////////////// Kalender-PopUp ///////////////////////////////////////////
var calendar = null; // remember the calendar object so that we reuse
// it and avoid creating another

// This function gets called when an end-user clicks on some date
function selected(cal, date) {
	cal.sel.value = date; // just update the value of the input field
}
// And this gets called when the end-user clicks on the _selected_ date,
// or clicks the "Close" (X) button.  It just hides the calendar without
// destroying it.
function closeHandler(cal) {
	cal.hide();	// hide the calendar
	// don't check mousedown on document anymore (used to be able to hide the
	// calendar when someone clicks outside it, see the showCalendar function).
	Calendar.removeEvent(document, "mousedown", checkCalendar);
}
// This gets called when the user presses a mouse button anywhere in the
// document, if the calendar is shown.  If the click was outside the open
// calendar this function closes it.
function checkCalendar(ev) {
	var el = Calendar.is_ie ? Calendar.getElement(ev) : Calendar.getTargetElement(ev);
	for (; el != null; el = el.parentNode)
	// FIXME: allow end-user to click some link without closing the
	// calendar.  Good to see real-time stylesheet change :)
	if (el == calendar.element || el.tagName == "A") break;
	if (el == null) {
		// calls closeHandler which should hide the calendar.
		calendar.callCloseHandler(); Calendar.stopEvent(ev);
	}
}
// This function shows the calendar under the element having the given id.
// It takes care of catching "mousedown" signals on document and hiding the
// calendar if the click was outside.
function showCalendar(id) {
	var el = document.getElementById(id);
	if (calendar != null) {
		// we already have one created, so just update it.
		calendar.hide();		// hide the existing calendar
		calendar.parseDate(el.value); // set it to a new date
	} else {
		// first-time call, create the calendar
		var cal = new Calendar(true, null, selected, closeHandler);
		calendar = cal;		// remember the calendar in the global
		cal.setRange(1900, 2070);	// min/max year allowed
		calendar.create();		// create a popup calendar
		calendar.parseDate(el.value); // set it to a new date
	}
	calendar.sel = el;		// inform it about the input field in use
	
	// Edited 03.02.09 //
	//calendar.showAt(370,120);	// show calendar absolute positioning (element, x, y)
	calendar.showAtElement(el,300,100);	// show the calendar next to the input field (element, +x, +y)
	// End Edited //

	// catch mousedown on the document
	Calendar.addEvent(document, "mousedown", checkCalendar);
	return false;
}

