var cal = {
	get : function() {
		document.form.change.value = "1";
		document.form.day.value = "";
		document.getElementById('time').style.display = "none";

		var data = new Array();
		data['duration'] = document.form.duration.options[document.form.duration.selectedIndex].value;
		data['cars[0]'] = document.form.car1.value;
		if(document.form.car2.value) data['cars[1]'] = document.form.car2.value;
		data['m'] = document.form.date_month.options[document.form.date_month.selectedIndex].value;
		data['y'] = document.form.date_year.options[document.form.date_year.selectedIndex].value;
		if(document.form.id) data['id'] = document.form.id.value;

		var error = "ERROR getting calendar!";

		ajax.request(data,5000,error,cal.fetch);
	},

	fetch : function(xhReq,error) {
		if(xhReq.status != 200) return false;
		clearTimeout(ajax.timeout);

		var xml = xhReq.responseXML;
		var cal = xml.getElementsByTagName('calendar')[0];

		var months = cal.getElementsByTagName('months');

		document.form.date_month.length = 0;
		document.form.date_month.className = "booksel";

		for(var m = 0; m < months.length; m++) {
			var objNr = months[m].getElementsByTagName('nr');
			var objName = months[m].getElementsByTagName('name');
			var objCur = months[m].getElementsByTagName('cur');

			var objOption = document.createElement('option');
			objOption.value = objNr[0].firstChild.data;
			objOption.text = objName[0].firstChild.data;
			if(objCur.length > 0) objOption.selected = true;

			document.form.date_month.options.add(objOption);
		}

		var years = cal.getElementsByTagName('years');

		document.form.date_year.length = 0;
		document.form.date_year.className = "booksel";

		for(var y = 0; y < years.length; y++) {
			var objNr = years[y].getElementsByTagName('nr');
			var objName = years[y].getElementsByTagName('name');
			var objCur = years[y].getElementsByTagName('cur');

			var objOption = document.createElement('option');
			objOption.value = objNr[0].firstChild.data;
			objOption.text = objName[0].firstChild.data;
			if(objCur.length > 0) objOption.selected = true;

			document.form.date_year.options.add(objOption);
		}

		var rows = cal.getElementsByTagName('rows');
		var cols = new Array();

		var table = '<table cellspacing="1">';

		for(var a = 0; a < rows.length; a++) {
			table += "<tr>";

			cols[a] = rows[a].getElementsByTagName('cols');

			for(var b = 0; b < cols[a].length; b++) {
				var objDay = cols[a][b].getElementsByTagName('day');
				var day = (objDay.length > 0) ? objDay[0].firstChild.data : '';

				var objTime = cols[a][b].getElementsByTagName('time');
				var content = (objTime.length > 0) ? '<a href="javascript:times.get('+day+')">'+day+'</a>' : day;

				var objToday = cols[a][b].getElementsByTagName('today');

				table += '<td>';
				if(objToday.length > 0) table += '<strong>';
				table += content;
				if(objToday.length > 0) table += '</strong>';
				table += '</td>';
			}

			table += "</tr>";
		}

		table += '</table>';

		document.getElementById('calendar').innerHTML = table;
	}
}

var times = {
	get : function(day) {
		document.form.day.value = day;

		var data = new Array();
		data['duration'] = document.form.duration.options[document.form.duration.selectedIndex].value;
		data['cars[0]'] = document.form.car1.value;
		if(document.form.car2.value) data['cars[1]'] = document.form.car2.value;
		data['m'] = document.form.date_month.options[document.form.date_month.selectedIndex].value;
		data['y'] = document.form.date_year.options[document.form.date_year.selectedIndex].value;
		data['d'] = day;
		if(document.form.id) data['id'] = document.form.id.value;

		var error = "ERROR getting times!";

		ajax.request(data,5000,error,times.fetch);
	},

	fetch : function(xhReq,error) {
		if(xhReq.status != 200) return false;
		clearTimeout(ajax.timeout);

		document.form.date_month.className = "booksel";
		document.form.date_year.className = "booksel";

		var xml = xhReq.responseXML;
		var times = xml.getElementsByTagName('times')[0];
		var time = times.getElementsByTagName('time');

		document.form.time.length = 0;
		document.form.time.className = "booksel";

		for(var a = 0; a < time.length; a++) {
			var stamp = time[a].getElementsByTagName('stamp');
			var text = time[a].getElementsByTagName('text');

			var objOption = document.createElement('option');
			objOption.value = stamp[0].firstChild.data;
			objOption.text = text[0].firstChild.data;

			document.form.time.options.add(objOption);
		}

		document.getElementById('time').style.display = "block";
	}
}

var cars = {
	change : function(nr) {
		document.form.elements['car'+nr].value = "";
		cars.list();
	},

	remove : function(nr) {
		if(nr==1) {
			if(document.form.car2.value) {
				document.form.car1.value = document.form.car2.value;
				document.form.car2.value = "";
			} else {
				document.getElementById('date').style.display = "none";
				document.getElementById('time').style.display = "none";

				document.form.car1.value = "";
				document.form.day.value = "";
				document.form.duration.selectedIndex = 0;
				document.form.date_year.selectedIndex = 0;
				document.form.time.length = 0;

				var output = '<div class="art">';
				output += '<p class="img"><a href="#"><img src="img/th_na.gif" width="120" height="80" alt="emotiondrive news" /><img src="img/ico_add.gif" alt="fahrzeug hinzuf&uuml;gen" class="max" /></a></p>';
				output += '<h3>kein Fahrzeug gew&auml;hlt</h3>';
				output += '<p>Leistung: N/A<br />Topspeed: N/A<br />0-100 km/h: N/A</p>';
				output += '<p class="qf"><a href="javascript:cars.list()">Fahrzeug hinzuf&uuml;gen</a></p>';
				output += '</div>';
				output += '<p class="attention">Wenn Sie nur ein Fahrzeug buchen wollen lassen Sie diese Auswahl frei</p>';
				output += '<div class="art">';
				output += '<p class="img"><a href="#"><img src="img/th_na.gif" width="120" height="80" alt="emotiondrive news" /><img src="img/ico_add.gif" alt="fahrzeug hinzuf&uuml;gen" class="max" /></a></p>';
				output += '<h3>kein zweites Fahrzeug gew&auml;hlt</h3>';
				output += '<p>Leistung: N/A<br />Topspeed: N/A<br />0-100 km/h: N/A</p>';
				output += '<p class="qf"><a href="javascript:cars.list()">Fahrzeug hinzuf&uuml;gen</a></p>';
				output += '</div>';

				document.getElementById('cars').innerHTML = output;

				return;
			}
		} else {
			document.form.car2.value = "";
		}

		cars.list(1);
	},

	list : function(chosen) {
		var data = new Array();
		data['getcars'] = 1;

		if(typeof chosen != "undefined") {
			if(document.form.car1.value) data['cars[0]'] = document.form.car1.value;
			if(document.form.car2.value) data['cars[1]'] = document.form.car2.value;
		}

		var error = "ERROR getting car-list!";

		ajax.request(data,5000,error,cars.fetch);
	},

	fetch : function(xhReq,error) {
		if(xhReq.status != 200) return false;
		clearTimeout(ajax.timeout);

		var xml = xhReq.responseXML;

		var cars = xml.getElementsByTagName('cars')[0];
		var car = cars.getElementsByTagName('car');
		var output = '';

		for(var a = 0; a < car.length; a++) {
			var objId = car[a].getElementsByTagName('id');
			if(objId[0].length < 1) return false;
			var objName = car[a].getElementsByTagName('name');
			var objPower = car[a].getElementsByTagName('power');
			var objSpeed = car[a].getElementsByTagName('speed');
			var objAcc = car[a].getElementsByTagName('acceleration');
			var objChosen = car[a].getElementsByTagName('chosen');

			var b = a+1;

			output += '<div class="art">';
			output += '<p class="img"><a href="javascript:cars.select('+objId[0].firstChild.data+')"><img src="img.php?cat=garage&amp;id='+objId[0].firstChild.data+'&amp;pic=side&amp;w=120&amp;h=80&amp;type=crop" width="120" height="80" alt="emotiondrive news" /><img src="img/ico_add.gif" alt="fahrzeug hinzuf&uuml;gen" class="max" /></a></p>';
			output += '<h3>'+objName[0].firstChild.data+'</h3>';
			output += '<p>Leistung: '+objPower[0].firstChild.data+'<br />Topspeed: '+objSpeed[0].firstChild.data+' km/h<br />0-100 km/h: '+objAcc[0].firstChild.data+' s</p>';
			output += '<p class="qf">'+((objChosen.length > 0) ? '<a href="javascript:cars.change('+b+')">Fahrzeug &auml;ndern</a> <a href="javascript:cars.remove('+b+')">Fahrzeug entfernen</a>' : '<a href="javascript:cars.select('+objId[0].firstChild.data+')">Fahrzeug w&auml;hlen</a>')+'</p>';
			output += '</div>';

			if(objChosen.length > 0 && a==0) {
				output += '<p class="attention">Wenn Sie nur ein Fahrzeug buchen wollen lassen Sie diese Auswahl frei</p>';

				if(car.length==1) {
					output += '<div class="art">';
					output += '<p class="img"><a href="#"><img src="img/th_na.gif" width="120" height="80" alt="emotiondrive news" /><img src="img/ico_add.gif" alt="fahrzeug hinzuf&uuml;gen" class="max" /></a></p>';
					output += '<h3>kein zweites Fahrzeug gew&auml;hlt</h3>';
					output += '<p>Leistung: N/A<br />Topspeed: N/A<br />0-100 km/h: N/A</p>';
					output += '<p class="qf"><a href="javascript:cars.list()">Fahrzeug hinzuf&uuml;gen</a></p>';
					output += '</div>';
				}
			}
		}

		document.getElementById('cars').innerHTML = output;

		if(car.length > 0 && document.form.duration.selectedIndex > 0 && !document.form.notime.checked) {
			var day = document.form.day.value;
			cal.get();
			if(day != "") times.get(day);
		}
	},

	select : function(id) {
		if(document.form.car1.value.length > 0) document.form.car2.value = id;
		else document.form.car1.value = id;
		if(document.form.car1.value==document.form.car2.value) document.form.car2.value = "";

		cars.list(1);
	}
}

var input = {
	focus : function(obj) {
		if(obj.value != defaults[obj.name]) return;
		obj.value = "";
	},

	blur : function(obj) {
		if(obj.value.match(/^(\s*)$/i)) obj.value = defaults[obj.name];
		else obj.className = "";
	}
}

function no_time(obj,edit) {
	if(obj.checked) {
		document.getElementById('date').style.display = "none";
		document.getElementById('time').style.display = "none";
	} else {
		var objDur = document.form.duration;
		var duration = objDur.options[objDur.selectedIndex].value;

		if(duration) {
			document.getElementById('date').style.display = "block";

			if(edit) {
				document.getElementById('time').style.display = "block";
			} else {
				var day = document.form.day.value;
				if(document.form.car1.value != "") cal.get();
				if(day != "") times.get(day);
			}
		}
	}
}

function check_duration(obj) {
	document.form.change.value = "1";

	obj.className = "booksel";
	if(document.form.notime.checked) return;

	var show = obj.options[obj.selectedIndex].value;

	if(show) {
		if(document.form.car1.value.length > 0) {
			document.getElementById('date').style.display = "block";
			var day = document.form.day.value;
			cal.get();
			if(day != "") times.get(day);
		} else {
			obj.selectedIndex = 0;
			alert('Bitte waehlen Sie zuerst ein Fahrzeug aus!');
		}
	} else {
		document.getElementById('date').style.display = "none";
		document.getElementById('time').style.display = "none";
	}
}

function submit_index() {
	if(document.form.action.options[document.form.action.selectedIndex].value) document.form.submit();
	else alert('Bitte waehlen Sie eine Aktion!');
}

function submit_form() {
	var errors = new Array();
	var msg;

	if(document.form.coupon[1].checked==true) {
		if(!document.form.car1.value) errors[errors.length] = "Wenn Sie keinen Gutschein buchen möchten, wählen Sie bitte ein Fahrzeug aus!";

		if(document.form.duration.selectedIndex==0) {
			errors[errors.length] = "duration";
			errors[errors.length] = "Wenn Sie keinen Gutschein buchen möchten, wählen Sie bitte die gewünschte Fahrtdauer!";
		}

		if(!document.form.day.value || document.form.time.selectedIndex==-1 || document.form.notime.checked) {
			errors[errors.length] = "date_month";
			errors[errors.length] = "date_year";
			errors[errors.length] = "time";
			errors[errors.length] = "Wenn Sie keinen Gutschein buchen möchten, wählen Sie bitte den gewünschten Termin!";
		}
	}

	if(document.form.gender_1.selectedIndex==0) errors[errors.length] = "gender_1";
	if(document.form.vname_1.value==defaults['vname_1']) errors[errors.length] = "vname_1";
	if(document.form.nname_1.value==defaults['nname_1']) errors[errors.length] = "nname_1";
	if(document.form.lic_1.selectedIndex==0) errors[errors.length] = "lic_1";
	if(document.form.lic_2.selectedIndex==0) errors[errors.length] = "lic_2";
	if(document.form.geb_1.selectedIndex==0) errors[errors.length] = "geb_1";
	if(document.form.geb_2.selectedIndex==0) errors[errors.length] = "geb_2";
	if(document.form.geb_3.selectedIndex==0) errors[errors.length] = "geb_3";
	if(document.form.gender_2.selectedIndex==0) errors[errors.length] = "gender_2";
	if(document.form.vname_2.value==defaults['vname_2']) errors[errors.length] = "vname_2";
	if(document.form.nname_2.value==defaults['nname_2']) errors[errors.length] = "nname_2";
	if(document.form.plz.value==defaults['plz']) errors[errors.length] = "plz";
	if(document.form.city.value==defaults['city']) errors[errors.length] = "city";
	if(document.form.street.value==defaults['street']) errors[errors.length] = "street";
	if(document.form.country.value==defaults['country']) errors[errors.length] = "country";
	if(document.form.payment.selectedIndex==0) errors[errors.length] = "payment";
	if(document.form.payment.selectedIndex==3 && document.form.code.value==defaults['code']) errors[errors.length] = "code";
	if(document.form.gender_3.selectedIndex==0) errors[errors.length] = "gender_3";
	if(document.form.vname_3.value==defaults['vname_3']) errors[errors.length] = "vname_3";
	if(document.form.nname_3.value==defaults['nname_3']) errors[errors.length] = "nname_3";
	if(document.form.tel.value==defaults['tel']) errors[errors.length] = "tel";
	if(document.form.mail.value==defaults['mail']) errors[errors.length] = "mail";

	for(var e = 0; e < errors.length; e++) {
		if(!document.form.elements[errors[e]]) {
			if(!msg) alert(errors[e]);
			msg = true;
		} else {
			if(document.form.elements[errors[e]].className != "") document.form.elements[errors[e]].className += " error";
			else document.form.elements[errors[e]].className = "error";
		}
	}

	if(errors.length==0) document.form.submit();
	else if(!msg) alert('Bitte überprüfen Sie Ihre Eingaben!');
}

function submit_confirm() {
	var error;

	if(!document.form.check1.checked) {
		alert('Bitte akzeptieren Sie die Nutzungsbestimmungen um fortzufahren!');
		error = true;
	}

	if(!document.form.check2.checked && !error) {
		alert('Bitte akzeptieren Sie die Datenschutzbestimmungen um fortzufahren!');
		error = true;
	}

	return (error) ? false : true;
}

function submit_action(obj) {
	if(obj.selectedIndex==1) {
		if(confirm("Wollen Sie die markierten Buchungen wirklich entfernen?")) document.form.submit();
		else obj.selectedIndex = 0;
	} else {
		document.form.submit();
	}
}

function submit_admin() {
	if(document.form.change.value=="0" || confirm('Wollen Sie die Änderungen wirklich speichern?')) document.form.submit();
}

function set_change() {
	document.form.change.value = "1";
}

var select = {
	getDays : function() {
		document.form.change.value = "1";

		var year = document.form.elements['geb_1'].options[document.form.elements['geb_1'].selectedIndex].value;
		var month = document.form.elements['geb_2'].options[document.form.elements['geb_2'].selectedIndex].value;
		var day = document.form.elements['geb_3'].options[document.form.elements['geb_3'].selectedIndex].value;

		if(year.length > 0) document.form.elements['geb_1'].className = "";
		if(month.length > 0) document.form.elements['geb_2'].className = "";
		if(day.length > 0) document.form.elements['geb_3'].className = "";

		if(year.length > 0 && month.length > 0) {
			var data = new Array();
			data['getdays'] = 1;
			data['m'] = month;
			data['y'] = year;

			var error = "ERROR getting days!";

			ajax.request(data,5000,error,select.fetchDays);
		}
	},

	fetchDays : function(xhReq,error) {
		if(xhReq.status != 200) return false;
		clearTimeout(ajax.timeout);

		var first = document.form.elements['geb_3'].options[0].text;
		var index = document.form.elements['geb_3'].selectedIndex;

		document.form.elements['geb_3'].length = 0;

		var objOption = document.createElement('option');
		objOption.value = "";
		objOption.text = first;

		document.form.elements['geb_3'].options.add(objOption);

		for(var d = 1; d <= xhReq.responseText; d++) {
			objOption = document.createElement('option');
			objOption.value = d;
			objOption.text = d;
			if(d==index) objOption.selected = true;

			document.form.elements['geb_3'].options.add(objOption);
		}
	},

	setclass : function(obj,name) {
		document.form.change.value = "1";

		if(typeof obj != "object") {
			var split = obj.split(",");
			for(var i = 0; i < split.length; i++) document.getElementById(split[i]).className = name || "";
		} else {
			obj.className = name || "";
		}

		if(obj.name=="payment") {
			document.getElementById('code').style.display = (obj.selectedIndex==3) ? "block" : "none";
		}
	}
}

var layer = {
	browser : new browser(),
	issticky : false,
	el : false,

	show : function(id,coupon) {
		var text = '<ul>';
		text += '<li><a href="pdf.php?cat=msg&amp;id='+id+'" target="_blank">Anschreiben</a></li>';
		text += '<li><a href="pdf.php?cat=data&amp;id='+id+'" target="_blank">Daten</a></li>';
		text += '<li><a href="pdf.php?cat=booking&amp;id='+id+'" target="_blank">Urkunde</a></li>';
		if(typeof coupon != 'undefined') text += '<li><a href="pdf.php?cat=coupon&amp;id='+id+'" target="_blank">Gutschein</a></li>';
		text += '</ul>';

		layer.issticky = false;
		layer.el = document.getElementById('pdflayer');

		document.getElementById('pdflayer_cont').innerHTML = text;
		document.onmousemove = layer.move;
	},

	move : function(event) {
		if(layer.issticky) return;
		if(layer.el) layer.el.style.visibility = "visible";

		if(layer.browser.isIE) {
			var x = window.event.clientX+document.documentElement.scrollLeft+document.body.scrollLeft;
			var y = window.event.clientY+document.documentElement.scrollTop+document.body.scrollTop;
		} else if(layer.browser.isNS) {
			var x = event.clientX+window.scrollX;
			var y = event.clientY+window.scrollY;
		}

		layer.el.style.left = x+15+"px";
		layer.el.style.top = y+"px";
	},

	sticky : function() {
		document.onmousemove = null;
		layer.issticky = true;
	},

	hide : function() {
		if(layer.issticky) return;
		layer.el.style.visibility =  "hidden";
		layer.el = null;
		document.onmousemove = null;
	},

	close : function() {
		layer.issticky = false;
		layer.hide();
	}
}

function browser() {
	var ua = navigator.userAgent;

	if(ua.indexOf("MSIE") > -1) {
		this.isIE = true;
		return;
	}

	if(ua.indexOf("Netscape6") > -1 || ua.indexOf("Gecko") > -1) {
		this.isNS = true;
		return;
	}
}
