
var offerdata;

function init_price() {
	offerdata = new Pricing();
	var a = document.getElementById('adults');
	if(a) a.onblur = function() {
		offerdata.persons = a.value;
		offerdata.updatePrice();
	}
	var d = document.getElementById('duration');
	if(d) {
//		offerdata.days = d.value;
		if(d.nodeName=='INPUT') {
			d.onblur = function() {
	//			offerdata.days = d.value;
				offerdata.updatePrice();
			}
		} else if(d.nodeName=='SELECT') {
			d.onchange = function() {

				offerdata.updatePrice();
			}
		}
	}
	var c = document.getElementById('children');
	if(c) c.onblur = function() {
		offerdata.children = c.value;
		offerdata.updatePrice();
	}
	var d = document.getElementById('arrivalday');
	if(d) d.onchange = function() {
		offerdata.updatePrice();
	}
	var m = document.getElementById('arrivalmonthyear');
	if(m) m.onchange = function() {
		offerdata.updatePrice();
	}
	var o = document.getElementById('ages');
	if(o) o = o.getElementsByTagName('SELECT');
	if(o) {
		for(i=0; i<o.length; i++) {
			o[i].onchange = function() {
				offerdata.updatePrice();
			}
		}
	}
	offerdata.persons = 1;
	offerdata.updatePrice();
}

function Pricing() {
	var room = document.getElementsByName('room');
	if(room && room[0] && room[0].value) this.room = room[0].value;
	var offer = document.getElementsByName('offer');
	if(offer && offer[0] && offer[0].value) this.offer = offer[0].value;
}

Pricing.prototype.updatePrice = function() {
	var target = document.getElementById('cost');
	if(target) { 
		var d = document.getElementById('arrivalday');
		var m = document.getElementById('arrivalmonthyear');
		var dt = document.getElementsByName('arrivaldate');
		var y;
		if(d && m) {
			d = d.value;
			m = m.value;
			y = m.substring(0,4);
			m = m.substring(5);
		} else if(dt && dt[0]) {
			var v = dt[0].value;
			y = v.substring(0,4);
			m = v.substring(5,7);
			d = v.substring(8);
		}
		var g = document.getElementById('duration');
		g = g.value ? g.value : 0;
		var ages = document.getElementById('ages');
		if(ages) ages = ages.getElementsByTagName('SELECT');
		if(ages) {
			var a = Array();
			for(i=0; i<ages.length; i++) {
				if(ages[i].value) a.push(ages[i].value);
			}
			ages = a.toString();
		}
		var ask = 'r='+this.room+'&o='+this.offer+'&p='+(this.persons?this.persons:'')+'&s='+g+'&y='+y+'&m='+m+'&d='+d+'&c='+(this.children?this.children:'')+'&a='+ages;
//alert(ask);
		var req = (window.XMLHttpRequest) ? new XMLHttpRequest() : new ActiveXObject("Msxml2.XMLHTTP"); 
//		req.setRequestHeader('Content-Type','text/xml; charset=UTF-8');
		req.open("GET",'price.php5?'+ask,true);
		req.onreadystatechange = function() {
			if(req.readyState==4 && req.status==200) {
				var result = req.responseXML.documentElement;
				if(result.firstChild && result.firstChild.nodeName=='data') {
					var data = result.firstChild.firstChild.nodeValue;
					target.innerHTML = data;
				} else if(result.firstChild && result.firstChild.nodeName=='error') {
					alert(result.firstChild.firstChild.nodeValue);
				} else if(!result.firstChild) {
					alert('Unexpected Empty Result Returned');
				} else {
					alert('Corrupt Response Document: '+req.responseText);
				}
			} else if(req.readyState==1||req.readyState==2||req.readyState==3) {
				// processing
			} else {
				alert("Failed with HTTP Status code: "+req.status);
			}
		}
		target.innerHTML = '<img src="gfx/Wait.gif" alt="Preis wird ausgerechnet"/>';
		req.send(null);
	}
}

