function startEditor(time) {
	var zufall = Math.random();
	var param = "op=display&time="+time+"&ran="+zufall;
	new Ajax.Updater('editor_'+time, "_operations.php", {asynchronous:true, postBody:param, evalScripts: true, encoding:'UTF-8'});
}

function abschicken(time) {
	$("progress_"+time).innerHTML = '<img src="Bilder/progressbar.gif"><br /><span class="klein">Upload läuft...</span>';
	eval("document.forms.editorform_"+time+".submit();");

}

function refresh(time) {
	
	var zufall = Math.random();
	var param = "op=display_plain&time="+time+"&ran="+zufall;
	new Ajax.Updater('editor_'+time, "_operations.php", {asynchronous:true, postBody:param, evalScripts: true, encoding:'UTF-8'});
}

function delPic(id) {
	if (confirm('Sind Sie sicher, dass Sie dieses Bild löschen wollen?\n\nSie können gelöschte Objekte nicht wieder zurückholen. Sollten Sie dieses Bild in einem Eintrag benutzen, kann es nicht mehr angezeigt werden.')) {
		window.location.href='_operations.php?op=delPic&id='+id;
	}
}
function delDiaPic(fileName) {
	if (confirm('Sind Sie sicher, dass Sie dieses Bild löschen wollen?')) {
		window.location.href='_operations.php?op=delDiaPic&fileName='+fileName;
	}
}

function del(time) {
	
	if (confirm('Sind Sie sicher, dass Sie diesen Eintrag löschen wollen?')) {
		
		var zufall = Math.random();
		var param = "op=delete&time="+time+"&ran="+zufall;
		new Ajax.Request("_operations.php", {asynchronous:true, postBody:param})
		
		$("editor_"+time).innerHTML = "Eintrag entfernt...";	
	}
}

function js_del(gotoV) {
	
	if (confirm('Sind Sie sicher, dass Sie diesen Eintrag löschen wollen?')) {
		window.location.href=gotoV;	
	}
}

function newEintrag() {
	var zufall = Math.random();
	var param = "op=new&ran="+zufall;
	new Ajax.Request('_operations.php', { postBody: param, onComplete: function(t) { var result = t.responseText; new Insertion.After('beginAktuelles', result); } });
}

function formatedDate(string) {
	
	var datum = stringToDate(string);
	
	var tag = datum.getDate();
	if (tag.toString().length == 1) tag = "0" + tag.toString();
	
	var monat = datum.getMonth() + 1;
	if (monat.toString().length == 1) monat = "0" + monat.toString();
	
	var jahr = datum.getFullYear();
	
	var datum = tag+"."+monat+"."+jahr.toString();
	return datum;
	
}

function stringToDate(string) {
	
	var dArray = string.split(".");
	
	if (dArray[2].length == 2) dArray[2] = "20" + dArray[2].toString();
	
	var Zeit1 = new Date(dArray[2], (dArray[1]-1), dArray[0]);
	return Zeit1;
	
}

function dateDifferenz(datum1, datum2) {
	
	datum1 = stringToDate(datum1);
	datum2 = stringToDate(datum2);
	var diff = datum2 - datum1;
	return Math.round(diff/(1000*60*60*24));
	
}

function anreiseDifferenz() {
	
	var tage = document.forms.reservierung.tage;
	var anreise = document.forms.reservierung.anreise;
	var abreise = document.forms.reservierung.abreise;
	if (anreise.value && abreise.value) {
		tage.value = dateDifferenz(anreise.value, abreise.value);
		gesamtPreis();
	}
	
}

function radioWert(rObj) {
	
    for (var i=0; i<rObj.length; i++) if (rObj[i].checked) return rObj[i].value;
    return false;

}


function gesamtPreis() {
	
	var erg = 0;
	
	var personen = document.forms.reservierung.personen;
	var einzelzimmer = document.forms.reservierung.einzelzimmer;
	var zweibettzimmer = document.forms.reservierung.zweibettzimmer;
	var dreibettzimmer = document.forms.reservierung.dreibettzimmer;
	var verpflegung = radioWert(document.forms.reservierung.verpflegung);
	
	var tage = document.forms.reservierung.tage;
	var ergebnis = document.forms.reservierung.ergebnis;
	
	
	if (verpflegung == "halbpension") erg += (preis_halbpension * personen.value * tage.value);
	else if (verpflegung == "vollpension") erg += preis_vollpension * personen.value * tage.value;
	
	if (tage.value == 1) {
		erg += einzelzimmer.value	* preis_1_1 * 1 * tage.value;
		erg += zweibettzimmer.value * preis_2_1 * 2 * tage.value;
		erg += dreibettzimmer.value * preis_3_1 * 3 * tage.value;
	} else if (tage.value == 2 || tage.value == 3 ) {
		erg += einzelzimmer.value	* preis_1_2 * 1 * tage.value;
		erg += zweibettzimmer.value * preis_2_2 * 2 * tage.value;
		erg += dreibettzimmer.value * preis_3_2 * 3 * tage.value;
	} else {
		erg += einzelzimmer.value	* preis_1_4 * 1 * tage.value;
		erg += zweibettzimmer.value * preis_2_4 * 2 * tage.value;
		erg += dreibettzimmer.value * preis_3_4 * 3 * tage.value;
	}
	
	ergebnis.value = convertPreis(erg);
	
}

function convertPreis(num) {

num = num.toString().replace(/\$|\,/g,'');
if(isNaN(num))
num = "0";
sign = (num == (num = Math.abs(num)));
num = Math.floor(num*100+0.50000000001);
cents = num%100;
num = Math.floor(num/100).toString();
if(cents<10)
cents = "0" + cents;
for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
num = num.substring(0,num.length-(4*i+3))+','+
num.substring(num.length-(4*i+3));
return (((sign)?'':'-') + '' + num + ',' + cents);
}


function submitCheck() {
	
	var personen = document.forms.reservierung.personen;
	var einzelzimmer = document.forms.reservierung.einzelzimmer;
	var zweibettzimmer = document.forms.reservierung.zweibettzimmer;
	var dreibettzimmer = document.forms.reservierung.dreibettzimmer;
	var verpflegung = radioWert(document.forms.reservierung.verpflegung);
	
	var tage = document.forms.reservierung.tage;
	var ergebnis = document.forms.reservierung.ergebnis;
	
	var vorname = document.forms.reservierung.vorname;
	var nachname = document.forms.reservierung.vorname;
	var strasse = document.forms.reservierung.vorname;
	var plz = document.forms.reservierung.vorname;
	var stadt = document.forms.reservierung.vorname;
	var telefon = document.forms.reservierung.telefon;
	var email = document.forms.reservierung.email;
	
	
	if (!ergebnis.value || ergebnis.value == "0.00") alert("Sie haben nicht genügend Informationen für Ihre Reservierung eingegeben. Bitte alle Felder im oberen Abschnitt ausfüllen!");
	else if (!vorname.value || !nachname.value || !strasse.value || !plz.value || !stadt.value || !telefon.value) alert("Bitte alle Felder im Abschnitt 'Persönliche Daten' ausfüllen");
	else if (!istEmail(email.value)) alert("Sie haben keine (gültige) eMail-Adresse eingegeben.");
	else document.forms.reservierung.submit();

}

function submitAGBcheck() {
	if (document.forms.reservierung.agb.checked) {
		document.forms.reservierung.submit();}
	else {
		alert("Sie müssen die AGBs akzeptieren, bevor wir Ihre Reservierung annehmen können.");
	}
}

function istEmail(feld) {
	
	// werden regular expressions unterstuetzt?
	var supported = 0;
	if (window.RegExp) {
	var tempStr = "a";
		var tempReg = new RegExp(tempStr);
		if (tempReg.test(tempStr)) supported = 1;
	}
	if (!supported)
	return (feld.indexOf(".") > 2) && (feld.indexOf("@") > 0);
	var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
	var r2 =
	new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$");
	return (!r1.test(feld) && r2.test(feld));
	
}

function mainEditor() {
	window.location.href="index.php?site=editor_show";
}

function insertPic(pic) {
	if ($('contField').value=="content") {
		tinyMCE.triggerSave();
		$('content_edit').value = $('content_edit').value + '<img src="images/'+pic+'">';
		tinyMCE.updateContent('content_edit');
	} else {
		
	}
}

function PVscroll(start, schub) {
	
	var zufall = Math.random();
	var start = (start+schub);
	if (start < 0) start = 0;
	var param = "op=pictureViewer&start="+start+"&ran="+zufall;
	new Ajax.Updater('pictureViewer', "_operations.php", {asynchronous:true, postBody:param, evalScripts: true, encoding:'UTF-8'});
}

function activateEintrag(time, active) {
	var status;
	if (active) status = "1";
	else status = "0";
	var zufall = Math.random();
	var param = "op=activate&time="+time+"&active="+status+"&ran="+zufall;
	new Ajax.Request("_operations.php", {asynchronous:true, postBody:param, evalScripts: true, encoding:'UTF-8'})
}

function sourceTiny(change) {
	if (change=="editor" && $('tinyEditor').style.display=="none") {
		$('contField').value="content";
		$('tinyEditor').style.display="block";
		$('plainEditor').style.display="none";
		tinyMCE.setContent($('content_edit_plain').value);
		$('designEditorButton').src="Bilder/icons/design_editor_on.png";
		$('designSourceButton').src="Bilder/icons/design_quelle.png";
	} else if (change=="source" && $('plainEditor').style.display=="none") {
		$('contField').value="cont2";
		$('tinyEditor').style.display="none";
		$('plainEditor').style.display="block";
		$('content_edit_plain').value = tinyMCE.getContent('content_edit');
		$('designEditorButton').src="Bilder/icons/design_editor.png";
		$('designSourceButton').src="Bilder/icons/design_quelle_on.png";
	}
}

function cal(field, mon, year) {
	
	$('cal').style.display="block";
	var zufall = Math.random();
	var jetzt = new Date();
	var monat = (jetzt.getMonth()+1);
	var jahr = jetzt.getFullYear();
	if (!(mon)) mon = monat;
	if (!(year)) year = jahr;
	var param = "field="+field+"&month="+mon+"&year="+year+"&ran="+zufall;
	new Ajax.Updater('cal', "calendar.php", {asynchronous:true, postBody: param, evalScripts: true, encoding:'UTF-8', method:'post'});
}

function calFill(field, date) {

	$('cal').style.display="none";
	$(field).value = date;
	anreiseDifferenz();
}

// ------------- OOP - Diashow ---------------- //


// Die Eingabe der Daten muss als Array erfolgen. Relative URLs möglich.
var gDia;
function Diashow(pix) {
	// Geschwindigkeit:
	this.changeSpeed = 4000;
	
	
	this.ChangePic = ChangePic;
	this.FadePic = FadePic;
	this.nextPic = 0;
	this.picSer = 0;
	this.DelPic = DelPic;
	this.minus = 0;
	this.ChangePic();
}

function ChangePic() {
	element = Builder.node('div', {className:'diashowPic', id:'pic'+this.picSer, style: "display:none;"},[
		Builder.node('img', {src: pix[this.nextPic]})
	]);
	$('diashow').appendChild(element);
	//this.FadePic();
	gDia = this;
	if (this.picSer == 0) {
		$('pic'+this.picSer).style.display="block";
		this.nextPic += 1;
		this.picSer += 1;
		this.ChangePic();
	} else {
		setTimeout("gDia.FadePic()", this.changeSpeed);
	}
}

function FadePic() {
	new Effect.Appear('pic'+this.picSer, {afterFinish: function(){gDia.DelPic();} });
	this.nextPic += 1;
	this.picSer += 1;
	if (this.nextPic == pix.length) {
		this.nextPic = 0;
	}
	this.ChangePic();
}
function DelPic() {
	if (this.minus >= 0) Element.remove('pic'+this.minus);
	this.minus +=1;
}

