﻿/* HOMEPAGE scripts  */

var linkprefix = "/nethotels/deutsch";
var room;
var roomArray = new Array();

function loadCalendar(src, t)
{
	var frm = document.forms["default"];
	var currentDate = frm.elements["dd" + t].value + "_" + frm.elements["mm" + t].value + "_" + frm.elements["yyyy" + t].value;
	var 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;


		}

	}


}


/* Date-Nights Correction !! */

var DateHasChanged = false;
var CurrentNights = 0;

var fromdate = new Date();
var todate = new Date();
todate.setDate(todate.getDate() + 1);

function recalcStayDuration(val) {
    //        alert("yo");
    // fetch arrival date


    //alert(val);

    if (val == 1) {
        // nächte gesetzt -> ändere departure date
        var nights = 6;  // document.getElementById("stayduration").value;
        var arrival = new Date();

        arrival.setMonth(parseInt(document.getElementById("arrivem").value) - 1);
        arrival.setDate(parseInt(document.getElementById("arrived").value));
        arrival.setFullYear(document.getElementById("arrivey").value);

        arrival.setTime(arrival.getTime() + nights * 24 * 60 * 60 * 1000);

        mth = arrival.getMonth() + 1; if (mth < 10) mth = "0" + mth;
        day = arrival.getDate(); if (day < 10) day = "0" + day;
        yea = arrival.getFullYear();

        document.getElementById("abreisemonthselect" + mth).selected = true;
        document.getElementById("abreisedayselect" + day).selected = true;
        document.getElementById("abreiseyearselect" + yea).selected = true;
    }
    else {
        var arrival = new Date();

        arrival.setMonth(parseInt(document.getElementById("arrivem").value) - 1);
        arrival.setDate(document.getElementById("arrived").value);
        arrival.setFullYear(document.getElementById("arrivey").value);
        // fetch departure date
        var departure = new Date();

        departure.setMonth(parseInt(document.getElementById("departm").value) - 1);
        departure.setDate(document.getElementById("departd").value);
        departure.setFullYear(parseInt(document.getElementById("departy").value));

        //alert(arrival + ' ' + departure);
        // dirty
        var phase = 0;
        if (document.getElementById("arrived").value == 31 && arrival.getMonth() == 11)
            phase = 30;

        var duration = Math.floor((departure.getTime() - arrival.getTime()) / (1000 * 60 * 60 * 24)) - phase; // zeit in tagen
               // alert(duration);

        if (duration <= 0) {

            // setze datum auf aktuelles +1 tag
            departure.setTime(arrival.getTime());
			var defaultduration = document.getElementById("stayduration").value;
			if (defaultduration > 0)
			{
				departure.setDate(parseInt(document.getElementById("arrived").value) + parseInt(defaultduration));
			}
			else
			{
				departure.setDate(parseInt(document.getElementById("arrived").value) + 1);
			}

            // hole datum und resette werte
            var newDepDay = departure.getDate(); //if (newDepDay < 10) newDepDay = "0" + newDepDay;
            var newDepMon = departure.getMonth(); newDepMon++; //if (newDepMon < 10) newDepMon = '0' + newDepMon;
            var newDepYea = departure.getFullYear();
          
            try {
            
                document.getElementById("departmonth" + newDepMon).selected = true;
                document.getElementById("departday" + newDepDay).selected = true;
                document.getElementById("departyear" + newDepYea).selected = true;
            }
            catch (ex) { //alert(ex.message); 
            }
            
        }
        // setze die anzahl der nächte
        var elemen = 6 //document.getElementById('stayduration');

        for (e = 0; e < elemen.length; e++) {
            if (elemen[e].value == duration) {
                elemen[e].selected = true;
                break;
            }
        }
    }
    // ruf dich jede sekunde selbst auf
    window.setTimeout("recalcStayDuration(0)", 1000);

}

function printDaysAsOption(id_prefix) {
    var outpBuf = "";
    var d = new Date();
    var day = d.getDate();

    for (i = 1; i < 32; i++) {
        //vorangestellte 0
        if (i < 10) {
            j = ("0" + i)
        }
        else j = i;

        if (i == day) {
            outpBuf += "<option selected id='" + id_prefix + "dayselect" + j + "' value=" + i + ">" + j + "&nbsp;<\/option>";
        }
        else {
            outpBuf += "<option value=" + i + " id='" + id_prefix + "dayselect" + j + "'>" + j + "<\/option>";
        }
    }
    return outpBuf;
}

function printMonthsAsOption(id_prefix) {
    var d = new Date();
    var month = d.getMonth() + 1;
    var outpBuf = "";

    for (i = 1; i < 13; i++) {
        if (i < 10) {
            j = ("0" + i)
        }
        else j = i;
        if (i == month) {
            outpBuf += "<option selected value=" + i + " id='" + id_prefix + "monthselect" + j + "'>" + j + "<\/option>";
        }
        else {
            outpBuf += "<option value=" + i + " id='" + id_prefix + "monthselect" + j + "'>" + j + "<\/option>";
        }
    }

    return outpBuf;
}

function printYearsAsOption(id_prefix) {
    var ddd = new Date();
    var year = ddd.getFullYear();
    var outpBuf = "";

    for (i = year; i < year + 2; i++) {
        if (i == year) {
            outpBuf += '<option value="' + i + '" selected id="' + id_prefix + 'yearselect' + i + '">' + i + '<\/option>';
        }
        else {
            outpBuf += '<option value="' + i + '" id="' + id_prefix + 'yearselect' + i + '">' + i + '<\/option>';
        }
    }
    return outpBuf;
}


// starte das recalc script jede sekunde
window.setTimeout("recalcStayDuration(0)", 1000);




//===================================================================================
// Arrive & Depature DateChange Script ==============================================
// RAN & TSO January 2012
//===================================================================================

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

/* 
function checkArrive(ctrl) {

	//alert(ctrl);
}
*/

function checkArrive(ctrl) {
	
	var ctrlValues = getValues();
	var frmTime, nowTime, nowDate;
	
	
	frmDate = new Date(ctrlValues[2],ctrlValues[1],ctrlValues[0], 23, 59, 59);
	toDate = new Date(ctrlValues[5],ctrlValues[4],ctrlValues[3],00,00,00);
	
	nowDate = new Date();			
	frmTime = frmDate.getTime();			
	nowTime = nowDate.getTime();
	
	var d,m,y;
	var ddiff, mdiff, ydiff, msdiff;
	 
	var dn = nowDate.getDate();
	var mn = Number(nowDate.getMonth()+1);
	var yn = nowDate.getFullYear(); 
		
	if(ctrl == "d") {
		
		
		if (frmDate.getDate() != ctrlValues[0])
		{
			document.getElementById("arrivem").selectedIndex = document.getElementById("arrivem").selectedIndex +1;
			frmDate = new Date(ctrlValues[2],Number(document.getElementById("arrivem")-1).value,ctrlValues[0], 23, 59, 59);
		}
		if (toDate.getDate() != ctrlValues[3])
		{
			document.getElementById("departm").selectedIndex = document.getElementById("departm").selectedIndex +1;
			toDate = new Date(ctrlValues[5],Number(document.getElementById("departm").value-1),ctrlValues[3], 23, 59, 59);
		}
		if (frmTime < nowTime) {
			
			frmDate = new Date(frmDate.getFullYear(),mn+1,frmDate.getDate());
		}
		
		
	} 
	else if(ctrl == "m") {
	
		if (frmDate.getDate() != ctrlValues[0])
		{
			
			document.getElementById("arrived").selectedIndex = document.getElementById("arrived").selectedIndex - frmDate.getDate();
			frmDate = new Date(ctrlValues[2],ctrlValues[1],document.getElementById("arrived").value, 23, 59, 59);
			
		}
		if (toDate.getDate() != ctrlValues[3])
		{
			document.getElementById("departd").selectedIndex = document.getElementById("departd").selectedIndex - toDate.getDate();
			toDate = new Date(ctrlValues[5],ctrlValues[4],document.getElementById("departd").value, 23, 59, 59);	
		}
		if (frmTime < nowTime) {
		
			frmDate = new Date(yn+1,frmDate.getMonth(),frmDate.getDate()); 
		}
	}
	else if(ctrl == "y") {
	
		if (frmTime < nowTime) {
			document.getElementById("departy").selectedIndex = document.getElementById("departy").selectedIndex + 1;
			frmDate = new Date(ctrlValues[2]+1,frmDate.getMonth(),frmDate.getDate()); 
		}	
	}
	
	if (frmDate >= toDate)
	{
		toDate = dateAdd(frmDate,1);
	}
	
	setValues(frmDate,toDate);
	
}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Add a value tot a given date! (Unit: 1=day, 2=month, 3=year)
function dateAdd(date,diff,unit) {

	var month = new Number(date.getMonth());

	if (!diff) {diff = 1;}

	switch (unit) {
		case 1:
			return new Date(date.getFullYear(), month, date.getDate() + diff);
			break;
		case 2:
			return new Date(date.getFullYear(), month + diff, date.getDate());
			break;
		case 3:
			return new Date(date.getFullYear() + diff, month, date.getDate());
			break;
		default:
			return new Date(date.getFullYear(), month, date.getDate() + diff);
	}
}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Give you the value between 2 dates for the named unit(Uni: 1=Sec., 2=Min., 3=Hour, 4=Day, Default=Day)
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;
	}
}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function getValues() {

	var ctrlValues = new Array(6);

	// ddi, mmi, yyyyi
	var ddi = document.getElementById("arrived").selectedIndex;
	var mmi = document.getElementById("arrivem").selectedIndex;
	var yyyyi = document.getElementById("arrivey").selectedIndex;

	// dd, mm, yyyy
	ctrlValues[0] = document.getElementById("arrived").options[ddi].value;
	
	var month = new Number(document.getElementById("arrivem").options[mmi].value -1);
	ctrlValues[1] = month; // + 1; alert(String(month + 1));
	
	ctrlValues[2] = document.getElementById("arrivey").options[yyyyi].value;

	// ddti, mmti, yyyyti
	var ddti = document.getElementById("departd").selectedIndex;
	var mmti = document.getElementById("departm").selectedIndex;
	var yyyyti = document.getElementById("departy").selectedIndex;

	// ddt, mmt, yyyyt
	ctrlValues[3] = document.getElementById("departd").options[ddti].value;
	
	var month2 = new Number(document.getElementById("departm").options[mmti].value -1);
	ctrlValues[4] = month2;
	
	ctrlValues[5] = document.getElementById("departy").options[yyyyti].value;
	
	return ctrlValues;
}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function setValues(frmDate,toDate) {

	var val, ctrl;
	var monthfrom = new Number(frmDate.getMonth()+1);
	var monthto = new Number(toDate.getMonth()+1);

	var ctrls = new Array(6);
	ctrls[0] = "arrived";
	ctrls[1] = "arrivem";
	ctrls[2] = "arrivey";
	ctrls[3] = "departd";
	ctrls[4] = "departm";
	ctrls[5] = "departy";

	var values = new Array(6);
	values[0] = frmDate.getDate();
	values[1] = monthfrom;
	values[2] = frmDate.getFullYear();
	values[3] = toDate.getDate();
	values[4] = monthto;
	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;
			}
		}
	}

}

//===================================================================================
//===================================================================================

function doCheckChildrenAgeBoxes(obj)
{
	var selectedChildren = obj.value;

	var oFrm = obj.form;

	var ChArray = new Array(oFrm.elements["ChildrenAgeList_1"],
													oFrm.elements["ChildrenAgeList_2"],
													oFrm.elements["ChildrenAgeList_3"],
													oFrm.elements["ChildrenAgeList_4"],
													oFrm.elements["ChildrenAgeList_5"]);

	var ch_1 = oFrm.elements["ChildrenAgeList_1"];
	var ch_2 = oFrm.elements["ChildrenAgeList_2"];
	var ch_3 = oFrm.elements["ChildrenAgeList_3"];
	var ch_4 = oFrm.elements["ChildrenAgeList_4"];
	var ch_5 = oFrm.elements["ChildrenAgeList_5"];

	if (selectedChildren == 0)
	{
			for (x = 0; x < ChArray.length; x++ )
			{
				ChArray[x].value = "";
				ChArray[x].style.display = "none";
			}

			document.getElementById("ChildrenAges").style.display = "none";

	}

	else {

		document.getElementById("ChildrenAges").style.display = "block";

		for (x = 0; x < ChArray.length; x++ )
			{
				if (x >= selectedChildren)
				{
					ChArray[x].value = "";
				}
				ChArray[x].style.display = "none";
			}

		for (x = 0; x < selectedChildren; x++ )
			{
				//ChArray[x].value = "";
				ChArray[x].style.display = "inline";
			}
	}

}

