var boekingPrijzen = null;

function BoekingPrijzen()
{
	var eHoliday_prijzenBody = null;
	
	var instantie = this;
	
	var aankomstenTabelContainerAccommodatietypen = null;
	var aankomstenTabelContainerAankomsten = null;

	var init = function()
	{
		if (document.getElementById('eHoliday_prijzenBody') != null) eHoliday_prijzenBody = document.getElementById('eHoliday_prijzenBody');
		if (eHoliday_prijzenBody) instantie.loadBoekingPrijzenForm();
	}
	
	this.loadBoekingPrijzenForm = function()
	{
		var requestParameters = '';
		if (document.getElementById('prijzenAankomstmaand') != null && document.getElementById('prijzenVerblijfsduur') != null)	var requestParameters = 'aankomstmaand=' + encodeURI(document.getElementById('prijzenAankomstmaand').value) + '&verblijfsduur=' + encodeURI(document.getElementById('prijzenVerblijfsduur').value);
		new ServerRequest('eHoliday_HttpRequestPostProxy.php?requestFunctionName=getBoekingPrijzenForm', instantie, 'receiveBoekingPrijzenForm', null, 'POST', requestParameters, true);
	}
	
	this.receiveBoekingPrijzenForm = function(data)
	{
		try 
		{		
			eHoliday_prijzenBody.innerHTML = stripslashes(data.prijzenBodyHTML);
			document.getElementById('prijzenAankomstmaand').onchange = instantie.loadBoekingPrijzenForm;
			document.getElementById('prijzenVerblijfsduur').onchange = instantie.loadBoekingPrijzenForm;
			
			aankomsten = data.aankomsten;
			resetAankomstenTabel();
		
			// Eerste (lege) )cel accommodatietype
			var accommodatietypeRij = document.createElement('tr');
			var accommodatietypeEersteCel = document.createElement('td');
			accommodatietypeEersteCel.innerHTML = '&nbsp;';
			accommodatietypeRij.appendChild(accommodatietypeEersteCel);
			aankomstenTabelContainerAccommodatietypen.appendChild(accommodatietypeRij);
			//
			var aankomstenRij = document.createElement('tr');
			aankomstenTabelContainerAankomsten.appendChild(aankomstenRij);
			
			var i = 0;
			while (i < aankomsten.length)
			{
				var cel = document.createElement('td');
				var dagString = aankomsten[i].aankomstdatum.substr(6, 2) + '-' + aankomsten[i].aankomstdatum.substr(4, 2);
				cel.innerHTML = aankomsten[i].dagVDWeekText + ' ' + dagString;
				cel.className = 'aankomst';
				aankomstenRij.appendChild(cel);
				i++;
			}
									
			var accommodatietypen = getAccommodatietypen(aankomsten);
			var i = 0;
			while (i < accommodatietypen.length)
			{
				// Accommodatie type aan tabel toevoegen
				var accommodatietypeRij = document.createElement('tr');
				var accommodatietypeCel = document.createElement('td');
				accommodatietypeCel.innerHTML = accommodatietypen[i].naam + ':';
				accommodatietypeCel.className = 'label';
				accommodatietypeRij.appendChild(accommodatietypeCel);
				aankomstenTabelContainerAccommodatietypen.appendChild(accommodatietypeRij);
				//
				// Aankomsten aan tabel toevoegen
				var aankomstenRij = document.createElement('tr');
				//				
				var j = 0;
				while (j < aankomsten.length)
				{
					var aankomstenCel = document.createElement('td');
					var gevonden = false;
					var k = 0;
					while (k < aankomsten[j].accommodatietypen.length && !gevonden)
					{
						if (aankomsten[j].accommodatietypen[k].id == accommodatietypen[i].id) gevonden = true;
						k++;
					}
					if (gevonden)
					{
						aankomstenCel.className = 'bezet';
						if (aankomsten[j].accommodatietypen[k - 1].isBeschikbaar == '1')
						{
							var radioButton = '';
							if (data.altijdMetVoorkeur == undefined || data.altijdMetVoorkeur == 0) radioButton = createAankomstdatumAccommodatietypeRadio(aankomsten[j].aankomstdatum, aankomsten[j].accommodatietypen[k - 1].id)
							var prijs = (parseInt(aankomsten[j].accommodatietypen[k - 1].prijs, 10) * 100) - parseInt(aankomsten[j].accommodatietypen[k - 1].korting, 10);
							var prijs = '' + prijs;
							var prijsLength = prijs.length;
							if (prijsLength == 2) prijs = '0' + prijs;
							if (prijsLength == 1) prijs = '00' + prijs;
							var prijsLength = prijs.length;
							prijs = prijs.substr(0, prijsLength - 2) + ',' + prijs.substr(prijsLength - 2, 2);
							if (aankomsten[j].accommodatietypen[k - 1].isLastminute == 0)
							{
								aankomstenCel.innerHTML = '<br />' + radioButton + '<br />&euro;' + prijs + '<br /><span class="aantalNachtenText">' + aankomsten[j].accommodatietypen[k - 1].aantalNachten + ' ' + data.nachtenText + '</span>';
								aankomstenCel.className = 'beschikbaar';
							}
							else
							{
								aankomstenCel.innerHTML = '<span class="lastminuteText">' + data.lastminuteText + '</span>&nbsp;<br />' + radioButton + '<br />&euro;' + prijs + '<br /><span class="aantalNachtenText">' + aankomsten[j].accommodatietypen[k - 1].aantalNachten + ' ' + data.nachtenText + '</span>';
								aankomstenCel.className = 'beschikbaarLastminute';
							}
						}			
					}
					else
					{
						aankomstenCel.innerHTML = '&nbsp;';
						aankomstenCel.className = 'nietMogelijk';
					}
					aankomstenCel.style.width = eHoliday_arrivalCelWidth + 'px';
					aankomstenRij.appendChild(aankomstenCel);
					j++;
				}
				aankomstenTabelContainerAankomsten.appendChild(aankomstenRij);
				i++;
			}
			// Laatste (lege) cel accommodatietype
			var accommodatietypeRij = document.createElement('tr');
			var accommodatietypeLaatsteCel = document.createElement('td');
			accommodatietypeLaatsteCel.innerHTML = '&nbsp;';
			accommodatietypeRij.appendChild(accommodatietypeLaatsteCel);
			aankomstenTabelContainerAccommodatietypen.appendChild(accommodatietypeRij);
			//
			// Scrollbalk instellen
			document.getElementById('tblAankomstenAankomsten').style.width = (aankomsten.length * eHoliday_arrivalCelWidth + 6 * aankomsten.length) + 'px';
			document.getElementById('tblAankomstenScroll').style.width = (eHoliday_arrivalsVisible * eHoliday_arrivalCelWidth + 6 * eHoliday_arrivalsVisible) + 'px';
			//
		}
		catch (error)
		{
			throw error;
		}
	}
	
	var resetAankomstenTabel = function()
	{
		aankomstenTabelContainerAccommodatietypen = document.getElementById('tblAankomstenAccommodatietypen').tBodies[0];
		if (aankomstenTabelContainerAccommodatietypen == undefined) aankomstenTabelContainerAccommodatietypen = document.getElementById('tblAankomstenAccommodatietypen');
		aankomstenTabelContainerAankomsten = document.getElementById('tblAankomstenAankomsten').tBodies[0];
		if (aankomstenTabelContainerAankomsten == undefined) aankomstenTabelContainerAankomsten = document.getElementById('tblAankomstenAankomsten');
	}
	
	var createAankomstdatumAccommodatietypeRadio = function()
	{
		return '';
	}
	
	var getAccommodatietypen = function(aankomsten)
	{
		var accommodatietypen = new Array();
		
		var i = 0;
		while (i < aankomsten.length)
		{
			var j = 0;
			while (j < aankomsten[i].accommodatietypen.length)
			{
				var k = 0;
				var gevonden = false;
				while (k < accommodatietypen.length && !gevonden)
				{
					if (accommodatietypen[k].id == aankomsten[i].accommodatietypen[j].id) gevonden = true;
					k++;
				}
				if (!gevonden) accommodatietypen[k] = aankomsten[i].accommodatietypen[j];
				j++;
			}
			i++;
		}
		return accommodatietypen;
	}
	
	var stripslashes = function(str)
	{
	    return str.replace('/\0/g', '0').replace('/\(.)/g', '$1');
	}

	init();
}