﻿/* HOMEPAGE scripts  */

var linkprefix = "/nethotels/deutsch";
var room;
var roomArray = new Array();

function loadCalendar(src, t, group)
{
	var frm = document.forms["default"];
	
	if (typeof(frm) == "undefined") {frm = document.forms["frmhotel"];}
	
	if (typeof( frm.elements["dd" + t]) == "undefined")
	{
		var currentDate = frm.elements["DD" + t].value + "_" + frm.elements["MM" + t].value + "_" + frm.elements["YYYY" + t].value;
	}
	else
	{
		var currentDate = frm.elements["dd" + t].value + "_" + frm.elements["mm" + t].value + "_" + frm.elements["yyyy" + t].value;
	}
	
	var res; 
	
	if(group)
	{
		linkprefix = "/" + group + "/deutsch";
		res = window.open(linkprefix + "/nhcalendar.htm?to=" + t + "&inDate=" + currentDate, "", "height=200px,width=235px,scroll=no");
	}
	else
	{
		res = window.open(linkprefix + "/nhcalendar.htm?to=" + t + "&inDate=" + currentDate, "", "height=200px,width=235px,scroll=no");
	}
	
	//,status=no
}

function RoomType (servcat, minp, maxp, minc, maxc, id)
{
	this.servcat = servcat;
	this.minp = minp;
	this.maxp = maxp;
	this.minc = minc;
	this.maxc = maxc;
	this.id = id;
}


function doHotelList()
{
	var frm = document.forms["default"];
	frm.elements["Search"].value = "All";
	frm.elements["ShowAll"].value = 1;
	frm.elements["IDServiceType"].value = "";
	frm.elements["IDProvType"].value = "1000";
	frm.elements["vm"].value = "2";
	frm.submit();
}


function checkCurrentRoomType(obj)
{
	var cat = parseInt(obj.value, 10);
	var frm = obj.form;

	var bxAmount = frm.elements["Amount"];
	var bxAdults = frm.elements["adults"];
	var bxChildren = frm.elements["children"];


	for (x = 0; x < roomArray.length; x++)
	{

		if (roomArray[x].id == cat)
		{
			room = roomArray[x];


			//BASE Fields
			if (bxAdults.options.length != 0)
			{
				for (d = (bxAdults.options.length - 1); d >= 0; d--)
				{
					bxAdults.removeChild(bxAdults.options[d]);
				}
			}

			if (bxChildren.options.length != 0)
			{
				for (d = (bxChildren.options.length - 1); d >= 0; d--)
				{
					bxChildren.removeChild(bxChildren.options[d]);
				}
			}

			for (d = room.minp; d <= room.maxp; d++)
			{
				node = document.createElement("OPTION");
				node.setAttribute("VALUE", d, 0)
				textNode = document.createTextNode(d);
				node.appendChild(textNode);

				if (d == room.maxp)
				{
					node.setAttribute("selected", "true", 0);
				}

				bxAdults.appendChild(node);
			}

			for (d = 0; d <= room.maxc; d++)
			{
				node = document.createElement("OPTION");
				node.setAttribute("VALUE", d, 0)
				textNode = document.createTextNode(d);
				node.appendChild(textNode);
				bxChildren.appendChild(node);
			}


			//EXTENDED Fields
			for (y = 2; y < 8; y++)
			{
				exAdults = frm.elements["adults_" + y];
				exChildren = frm.elements["children_" + y];

				document.getElementById("persons_" + y).style.display = "none";

				if (exAdults.options.length != 0)
				{
					for (d = (exAdults.options.length - 1); d >= 0; d--)
					{
						exAdults.removeChild(exAdults.options[d]);
					}
				}

				if (exChildren.options.length != 0)
				{
					for (d = (exChildren.options.length - 1); d >= 0; d--)
					{
						exChildren.removeChild(exChildren.options[d]);
					}
				}



				if (y <= bxAmount.value)
				{
					document.getElementById("persons_" + y).style.display = "block";
					for (d = room.minp; d <= room.maxp; d++)
					{
						node = document.createElement("OPTION");
						node.setAttribute("VALUE", d, 0)
						textNode = document.createTextNode(d);
						node.appendChild(textNode);
						if (d == room.maxp)
						{
							node.setAttribute("selected", "true", 0);
						}
						exAdults.appendChild(node);
					}

					for (d = 0; d <= room.maxc; d++)
					{
						node = document.createElement("OPTION");
						node.setAttribute("VALUE", d, 0)
						textNode = document.createTextNode(d);
						node.appendChild(textNode);
						exChildren.appendChild(node);
					}

				}

			}

			break;
		}
	}
}


function chkRange(o)
{

	//alert(o);

	var frm = o.form;

	var d, m, y;
	var dt, mt, yt;

	if (o.checked)
	{
		if (frm.elements["dd"] != null && frm.elements["ddt"] != null)
		{
			d = frm.elements["dd"].value;
			m = frm.elements["mm"].value;
			y = frm.elements["yyyy"].value;

			dt = frm.elements["ddt"].value;
			mt = frm.elements["mmt"].value;
			yt = frm.elements["yyyyt"].value;
		}
		else
		{
			if (frm.elements["DD"] != null && frm.elements["DDt"] != null)
			{
				d = frm.elements["DD"].value;
				m = frm.elements["MM"].value;
				y = frm.elements["YYYY"].value;

				dt = frm.elements["DDt"].value;
				mt = frm.elements["MMt"].value;
				yt = frm.elements["YYYYt"].value;
			}
		}


		if (frm.elements["RANGEDISPLAYBOX"] != null)
		{
				frm.elements["RANGEDISPLAYBOX"].value = "(" + d + "." + m + "." + y + " - " + dt + "." + mt + "." + yt + ")";
		}


	}
	else
	{
		if (frm.elements["RANGEDISPLAYBOX"] != null)
		{
				frm.elements["RANGEDISPLAYBOX"].value = "";
		}
	}




}

function chkNightsRange(o)
{

}


function chkNightsReverse(o)
{


}


function fillRange(o)
{
	var frm = o.form;

	var d, m, y;
	var dt, mt, yt;


	if (frm.elements["dd"] != null && frm.elements["ddt"] != null)
		{
			d = frm.elements["dd"].value;
			m = frm.elements["mm"].value;
			y = frm.elements["yyyy"].value;

			dt = frm.elements["ddt"].value;
			mt = frm.elements["mmt"].value;
			yt = frm.elements["yyyyt"].value;
		}
		else
		{
			if (frm.elements["DD"] != null && frm.elements["DDt"] != null)
			{
				d = frm.elements["DD"].value;
				m = frm.elements["MM"].value;
				y = frm.elements["YYYY"].value;

				dt = frm.elements["DDt"].value;
				mt = frm.elements["MMt"].value;
				yt = frm.elements["YYYYt"].value;
			}
		}




	if (frm.elements["Nights"] != null && frm.elements["SearchInRange"] != null)
	{
		if (frm.elements["SearchInRange"].checked)
		{
			if (frm.elements["RANGEDISPLAYBOX"] != null)
			{
				frm.elements["RANGEDISPLAYBOX"].value = "(" + d + "." + m + "." + y + " - " + dt + "." + mt + "." + yt + ")";
			}
		} else {


			var frmDate = new Date(y, m, d);
			var toDate = new Date(yt, mt, dt);

			var dateDiff = (toDate - frmDate) / (24 * 60 * 60 * 1000);

			//alert(dateDiff);

			frm.elements["Nights"].value = dateDiff;


		}

	}


}

/*
// New Functions - Work in progress...
function checkDateNew() {

	var ddi = document.getElementById("DD").selectedIndex;
	var mmi = document.getElementById("MM").selectedIndex;
	var yyyyi = document.getElementById("YYYY").selectedIndex;

	var dd = document.getElementById("DD").options[ddi].value;
	var mm = document.getElementById("MM").options[mmi].value;
	var yyyy = document.getElementById("YYYY").options[yyyyi].value;

	var ddti = document.getElementById("DDt").selectedIndex;
	var mmti = document.getElementById("MMt").selectedIndex;
	var yyyyti = document.getElementById("YYYYt").selectedIndex;

	var ddt = document.getElementById("DDt").options[ddti].value;
	var mmt = document.getElementById("MMt").options[mmti].value;
	var yyyyt = document.getElementById("YYYYt").options[yyyyti].value;

	var frmDate = new Date(yyyy, mm, dd,23,59,59); // Die brauch ich sonst gibt es Probleme weil die Millisekunden kleiner sind bei dem Wert!
	var toDate = new Date(yyyyt, mmt, ddt, 00, 00, 00);
	var now = new Date();

	//var url = "javascript:document.forms['frmhotel'].submit();";
	var url = "javascript:alert('Jetzt würde es wohl weiter gehen...');";

	document.getElementById("timeFrom").innerHTML = frmDate.getTime();
	document.getElementById("timeTo").innerHTML = toDate.getTime();
	document.getElementById("timeNow").innerHTML = now.getTime();
	document.getElementById("timeDiff").innerHTML =  now.getTime() - frmDate.getTime();

	document.getElementById("infoFrom").innerHTML = frmDate.toDateString() + "/" + frmDate.getHours() + ":" + frmDate.getMinutes();
	document.getElementById("infoTo").innerHTML = toDate.toDateString() + "/" + toDate.getHours() + ":" + toDate.getMinutes();
	document.getElementById("infoNow").innerHTML = now.toDateString() + "/" + now.getHours() + ":" + now.getMinutes();

	if ((frmDate.getTime() < now.getTime()) || (frmDate.getTime() >= toDate.getTime())) {

		alert("Bitte überprüfen sie die Datumsangeben!");
		return false;
	}
	else {

		window.location.href = url;
	}
}

//=================================================================
function checkDate(diff) {

	if(!diff) {diff = 1;}

	var ddi = document.getElementById("DD").selectedIndex;
	var mmi = document.getElementById("MM").selectedIndex;
	var yyyyi = document.getElementById("YYYY").selectedIndex;

	var dd = document.getElementById("DD").options[ddi].value;
	var mm = document.getElementById("MM").options[mmi].value;
	var yyyy = document.getElementById("YYYY").options[yyyyi].value;

	var ddti = document.getElementById("DDt").selectedIndex;
	var mmti = document.getElementById("MMt").selectedIndex;
	var yyyyti = document.getElementById("YYYYt").selectedIndex;

	var ddt = document.getElementById("DDt").options[ddti].value;
	var mmt = document.getElementById("MMt").options[mmti].value;
	var yyyyt = document.getElementById("YYYYt").options[yyyyti].value;

	var frmDate = new Date(yyyy, mm, dd, 23, 59, 59); // Die brauch ich sonst gibt es Probleme weil die Millisekunden kleiner sind bei dem Wert!
	var toDate = new Date(yyyyt,mmt,ddt,00,00,00);
	var now = new Date();

	alert(dd);

	document.getElementById("timeFrom").innerHTML = frmDate.getTime();
	document.getElementById("timeTo").innerHTML = toDate.getTime();
	document.getElementById("timeNow").innerHTML = now.getTime();
	document.getElementById("timeDiff").innerHTML = now.getTime() - frmDate.getTime();

	if (frmDate.getTime() < now.getTime()) {

		diffNow = dateDiff(frmDate, now);
		frmDate = dateAdd(frmDate, diffNow);

	}

	if (frmDate.getTime() >= toDate.getTime()) {

		toDate = dateAdd(frmDate, diff);

	}

	document.getElementById("infoFrom").innerHTML = frmDate.toDateString();
	document.getElementById("infoTo").innerHTML = toDate.toDateString();
	document.getElementById("infoNow").innerHTML = now.toDateString();

	setValues(frmDate, toDate);
	
}

// Add a value to a given date for specified unit (1 = d, 2 = m, 3 = y, default = d)
function dateAdd(date,diff,unit) {

	if (!diff) {diff = 1;}

	switch (unit) {
		case 1:
			return new Date(date.getFullYear(), date.getMonth(), date.getDate() + diff);
			break;
		case 2:
			return new Date(date.getFullYear(), date.getMonth() + diff, date.getDate());
			break;
		case 3:
			return new Date(date.getFullYear() + diff, date.getMonth(), date.getDate());
			break;
		default:
			return new Date(date.getFullYear(), date.getMonth(), date.getDate() + diff);
	}
}

// Calculate the difference of two dates and specified unit (1 = ms, 2 = s, 3 = h, 4 = d, default = d)
function dateDiff(frmDate, toDate, unit) {

	var milli = toDate.getTime() - frmDate.getTime();

	switch (unit) {
		case 1:
			return Math.floor(milli / (1000));
			break;
		case 2:
			return Math.floor(milli / (60 * 1000));
			break;
		case 3:
			return Math.floor(milli / (60 * 60 * 1000));
			break;
		case 4:
			return Math.floor(milli / (24 * 60 * 60 * 1000));
			break;
		default:
			return Math.floor(milli / (24 * 60 * 60 * 1000));
			break;
	}
}

// Set the values on the controls
function setValues(frmDate,toDate) {

	// var d = frmDate.getDate();
	// var m = frmDate.getMonth();
	// var y = frmDate.getFullYear();
	// var dt = toDate.getDate();
	// var mt = toDate.getMonth();
	// var yt = toDate.getFullYear();

	var val, ctrl;

	var ctrls = new Array(5);
	ctrls[0] = "DD";
	ctrls[1] = "MM";
	ctrls[2] = "YYYY";
	ctrls[3] = "DDt";
	ctrls[4] = "MMt";
	ctrls[5] = "YYYYt";

	var values = new Array(5);
	values[0] = frmDate.getDate();
	values[1] = frmDate.getMonth();
	values[2] = frmDate.getFullYear();
	values[3] = toDate.getDate();
	values[4] = toDate.getMonth();
	values[5] = toDate.getFullYear();

	for (i = 0; i < ctrls.length; i++) {

		val = values[i];
		ctrl = document.getElementById(ctrls[i]);

		for (j = 0; j < ctrl.length; j++) {

			if (ctrl[j].value == val) {

				ctrl.selectedIndex = j;
			}
		}
	}

}


// f=Formdaten (ctrl = onchange="checkDate(this);")
function getDateValues(f)
{
	var frm = f.form;
	var dateValues = new Array();

	var d, m, y;
	var dt, mt, yt;

	if (frm.elements["dd"] != null && frm.elements["ddt"] != null)
		{
			dateValues[0] = frm.elements["dd"].value;
			dateValues[1] = frm.elements["mm"].value;
			dateValues[2] = frm.elements["yyyy"].value;

			dateValues[3] = frm.elements["ddt"].value;
			dateValues[4] = frm.elements["mmt"].value;
			dateValues[5] = frm.elements["yyyyt"].value;
		}
	else
		{
			if (frm.elements["DD"] != null && frm.elements["DDt"] != null)
			{
				dateValues[0] = frm.elements["DD"].value;
				dateValues[1] = frm.elements["MM"].value;
				dateValues[2] = frm.elements["YYYY"].value;

				dateValues[3] = frm.elements["DDt"].value;
				dateValues[4] = frm.elements["MMt"].value;
				dateValues[5] = frm.elements["YYYYt"].value;
			}
		}
		
	var frmDate = new Date(y, m, d);
	var toDate = new Date(yt, mt, dt);
	
	var frmDate = new Date(dateValues[2],dateValues[1],dateValues[0]);
	var toDate = new Date(dateValues[5],dateValues[4],dateValues[3]);
		
	dateValues[6] = frmDate;
	dateValues[7] = toDate;
	
	return dateValues
}

*/


