// JavaScript Document
function show_calendar4(str_target, str_datetime) {
	var arr_months = ["Januar", "Februar", "März", "April", "Mai", "Juni",
		"Juli", "August", "September", "Oktober", "November", "Dezember"];
	var week_days = ["So.", "Mo.", "Di.", "Mi.", "Do.", "Fr.", "Sa."];
	var n_weekstart = 1; // day week starts from (normally 0 or 1)
	
	var dt_datetime = (str_datetime == null || str_datetime =="" ?  new Date() : str2dt4(str_datetime));
	var dt_prev_month = new Date(dt_datetime);
	dt_prev_month.setMonth(dt_datetime.getMonth()-1);
	if (dt_datetime.getMonth()%12 != (dt_prev_month.getMonth()+1)%12) {
		dt_prev_month.setMonth(dt_datetime.getMonth());
		dt_prev_month.setDate(0);
	}
	var dt_next_month = new Date(dt_datetime);
	dt_next_month.setMonth(dt_datetime.getMonth()+1);
	if ((dt_datetime.getMonth() + 1)%12 != dt_next_month.getMonth()%12)
		dt_next_month.setDate(0);
	
	var dt_firstday = new Date(dt_datetime);
	dt_firstday.setDate(1);
	dt_firstday.setDate(1-(7+dt_firstday.getDay()-n_weekstart)%7);
	var dt_lastday = new Date(dt_next_month);
	dt_lastday.setDate(0);
	
	// html generation (feel free to tune it for your particular application)
	// print calendar header
	var str_buffer = new String (
		"<html>\n"+
		"<head>\n"+
		"	<title>Datum wählen...</title>\n"+
		"</head>\n"+
		"<body bgcolor=\"#FFFFFF\">\n"+
		"<table class=\"clsOTable\" cellspacing=\"0\" border=\"0\" width=\"100%\">\n"+
		"<tr><td bgcolor=\"#A80000\">\n"+
		"<table cellspacing=\"1\" cellpadding=\"3\" border=\"0\" width=\"100%\">\n"+
		"<tr>\n	<td bgcolor=\"#A80000\"><a href=\"javascript:window.opener.show_calendar4('"+
		str_target+"', '"+ dt2dtstr4(dt_prev_month)+"');\">"+
		"<img src=\"prev.gif\" width=\"16\" height=\"16\" border=\"0\""+
		" alt=\"voriger Monat\"></a></td>\n"+
		"	<td bgcolor=\"#A80000\" colspan=\"5\">"+
		"<font color=\"white\" face=\"tahoma, verdana\" size=\"2\">"
		+arr_months[dt_datetime.getMonth()]+" "+dt_datetime.getFullYear()+"</font></td>\n"+
		"	<td bgcolor=\"#A80000\" align=\"right\"><a href=\"javascript:window.opener.show_calendar4('"
		+str_target+"', '"+dt2dtstr4(dt_next_month)+"');\">"+
		"<img src=\"next.gif\" width=\"16\" height=\"16\" border=\"0\""+
		" alt=\"nächster Monat\"></a></td>\n</tr>\n"
	);

	var dt_current_day = new Date(dt_firstday);
	// print weekdays titles
	str_buffer += "<tr>\n";
	for (var n=0; n<7; n++)
		str_buffer += "	<td bgcolor=\"#FFF3B2\">"+
		"<font color=\"#333333\" face=\"tahoma, verdana\" size=\"2\">"+
		week_days[(n_weekstart+n)%7]+"</font></td>\n";
	// print calendar table
	str_buffer += "</tr>\n";
	while (dt_current_day.getMonth() == dt_datetime.getMonth() ||
		dt_current_day.getMonth() == dt_firstday.getMonth()) {
		// print row heder
		str_buffer += "<tr>\n";
		for (var n_current_wday=0; n_current_wday<7; n_current_wday++) {
				if (dt_current_day.getDate() == dt_datetime.getDate() &&
					dt_current_day.getMonth() == dt_datetime.getMonth())
					// print current date
					str_buffer += "	<td bgcolor=\"#FF7A0E\" align=\"right\">";
				else if (dt_current_day.getDay() == 0 || dt_current_day.getDay() == 6)
					// weekend days
					str_buffer += "	<td bgcolor=\"FFF7CD\" align=\"right\">";
				else
					// print working days of current month
					str_buffer += "	<td bgcolor=\"white\" align=\"right\">";

				if (dt_current_day.getMonth() == dt_datetime.getMonth())
					// print days of current month
					str_buffer += "<a href=\"javascript:window.opener."+str_target+
					".value='"+dt2dtstr4(dt_current_day)+"'; window.close(); \">"+
					"<font color=\"black\" face=\"tahoma, verdana\" size=\"2\">";
				else 
					// print days of other months
					str_buffer += "<a href=\"javascript:window.opener."+str_target+
					".value='"+dt2dtstr4(dt_current_day)+"'; window.close();\">"+
					"<font color=\"gray\" face=\"tahoma, verdana\" size=\"2\">";
				str_buffer += dt_current_day.getDate()+"</font></a></td>\n";
				dt_current_day.setDate(dt_current_day.getDate()+1);
		}
		// print row footer
		str_buffer += "</tr>\n";
	}
	// print calendar footer
	str_buffer +=
		"</table>\n" +
		"</tr>\n</td>\n</table>\n" +
		"</body>\n" +
		"</html>\n";

	var vWinCal = window.open("", "Calendar", 
		"width=205,height=205,status=no,resizable=no,top=200,left=400");
	vWinCal.opener = self;
	vWinCal.focus();
	var calc_doc = vWinCal.document;
	calc_doc.write (str_buffer);
	calc_doc.close();
	
}

function str2dt4 (str_datetime) {
	var re_date = /^(\d+)\-(\d+)\-(\d+)$/;
	if (!re_date.exec(str_datetime))
		return alert("Datumformat ist falsch: "+ str_datetime + ". Gebrauchen Sie bitte das Format JJJJ-MM-TT.");
	return (new Date (RegExp.$1, RegExp.$2-1, RegExp.$3));
}

function today(){
var dzisiaj = new Date();
return (new String ((dzisiaj.getFullYear()+"-"+(dzisiaj.getMonth()+1)+"-"+dzisiaj.getDate())));
}

function dt2dtstr4 (dt_datetime) {
var str = dt_datetime.getFullYear()+"";
var year = str;
	return (new String (
			(year+"-"+(dt_datetime.getMonth()+1)+"-"+(dt_datetime.getDate()))));
}

function addDaysToDate(date, numOfDays)
{
	return new Date(date.getFullYear(), date.getMonth(), date.getDate()+numOfDays);
}

function onNumOfAdultsChange(form, numOfAdults)
{
	var numOfBeds = form.numOfBedsSelect;
	var count = numOfBeds.options.length;
	var i;
	
	for (i=0; i<count; i++)
	{
		numOfBeds.remove(0);
	}
	
	numOfBeds.selectedIndex = 0;
	
	//var start = numOfAdults > 1 ? Math.ceil(numOfAdults/2) : 1;
	var start = numOfAdults > 1 ? numOfAdults-1 : 1;
	var stop = numOfAdults > 4 ? 4 : numOfAdults;
	
	for (i=start; i<=stop; i++)
	{
		var el = document.createElement('OPTION');
		el.text = String(i);
		el.value = i;
		numOfBeds.add(el, document.all ? i : null);
		//numOfBeds.selectedIndex++;
	}
	
	form.numOfBedsSelect.value = stop;
}

function onNumOfBedsChange(form, numOfBeds)
{
	if (numOfBeds > form.numOfAdultsSelect.value)
		form.numOfAdultsSelect.value = numOfBeds;
	else if (numOfBeds*2 < form.numOfAdultsSelect.value)
		form.numOfAdultsSelect.value = numOfBeds*2;
}
function formatDate(date)
{
	return date.getFullYear() + "-" + formatDatePart(date.getMonth()+1) +
		"-" + formatDatePart(date.getDate());
}

function komunikat()
{
	if (!document.getElementById("maskahotele-ramka-140")=="") document.getElementById("maskahotele-ramka-140").style.display = "none";
	if (!document.getElementById("komunikat_maly")=="") document.getElementById("komunikat_maly").style.display = "block";
	if (!document.getElementById("maskahotele-ramka")=="")document.getElementById("maskahotele-ramka").style.display = "none";
    if (!document.getElementById("komunikat")=="") document.getElementById("komunikat").style.display = "block";
}

function maska_wycieczki()
{
	document.getElementById("maskahotele-ramka").style.display = "none";
	document.getElementById("maskahotele-tlo").style.display = "none";
	document.getElementById("maskahotele-tlo1").style.display = "block";
    document.getElementById("maskawycieczki-ramka").style.display = "block";
}
function maska_hotele()
{
	document.getElementById("maskahotele-tlo1").style.display = "none";
    document.getElementById("maskawycieczki-ramka").style.display = "none";
	document.getElementById("maskahotele-ramka").style.display = "block";
	document.getElementById("maskahotele-tlo").style.display = "block";
}

function komunikat_main()
{
	document.getElementById("maskahotele-ramka").style.display = "none";
    document.getElementById("komunikat").style.display = "block";
}

function formatDatePart(value)
{
	var v = String(value);
	return v.length==1 ? "0"+v : v;
}
function verifyform(form)
{
	var today = new Date();
	today.setHours(0);
	today.setMinutes(0);
	today.setSeconds(0);
	today.setMilliseconds(0);
	var arrDate = str2dt4(form.checkInDate.value);
	var depDate = str2dt4(form.departureDate.value);
	form.departureDate.style.color="#000000";
	form.checkInDate.style.color="#000000";
	
	
	if (depDate <= arrDate)
	{
		alert('Abreisedatum muss später als Anreisedatum sein!');	
		form.departureDate.style.color="#FF6600";
		return false;
	}
	if (arrDate < today)
		{
			alert('Anreisedatum kann nicht vorherig als heutiges Datum sein!');	
			form.checkInDate.style.color="#FF6600";
			return false;
		}
	if ((depDate-arrDate)/(1000*60*60*24) > 60)
	{
		alert('Abreisedatum kann nicht später als 60 Tage vom Anreisedatum sein!');
			form.departureDate.style.color="#FF6600";
		return false;
	} else 
	{
		
			/*if (form.placeID){
		var jakaMaska = form.placeID.options[form.placeID.selectedIndex].value;
        var naszeMiasto = form.citySelect.options[form.citySelect.selectedIndex].value;
		
		if ((naszeMiasto == 1001)&&(jakaMaska == -1)){form.action = 'http://hotels.poland.com/hotels-at.php?&citySelect=1001&type=1&loc=-1&languageID=1'} else
		if (naszeMiasto == 1001){form.action = 'http://hotels.poland.com/hotels-at.php?&citySelect=1001&type=1&loc=-1&languageID=1'}        
		if ((naszeMiasto == 402)&&(jakaMaska == -1)){form.action = 'http://hotels.poland.com/hotels-at.php?&citySelect=402&type=1&loc=-1&languageID=1'} else
		if ((naszeMiasto == 402)&&(jakaMaska == 10402)){form.action = 'http://gleboczek.poland.com/'}	
		if (jakaMaska == -1){
        	form.action = 'hotele-wyniki.php';
		}
		else if (jakaMaska == -2){
        	form.action = 'http://podolivka.poland.com/en/';}
		else if (jakaMaska == -4){
        	form.action = 'http://kazimierzs-secret.poland.com/';}	
		else {
        	form.action = 'hotele-wynikidlahotelu-middle.php';}
		} else {
			var naszeMiasto = form.citySelect.options[form.citySelect.selectedIndex].value;
		
		if (naszeMiasto == 1001){form.action = 'http://hotels.poland.com/hotels-at.php?&citySelect=1001&type=1&loc=-1&languageID=2'}        
        else {
        	form.action = 'hotele-wyniki.php';}
		}
	*/
	
	 var jakaMaska = form.placeID.options[form.placeID.selectedIndex].value;
	 var jakieMiasto = form.citySelect.options[form.citySelect.selectedIndex].value;
	 
	switch (true){
	case ((jakieMiasto == 1001) && (jakaMaska == -1)):
	
			form.action = 'http://hotels.poland.com/hotels-at.php?&citySelect=1001&type=1&loc=-1&languageID=1';
	break;
	case ((jakieMiasto == 401) && (jakaMaska == -1)):
	
			form.action = 'http://hotels.poland.com/hotels-at.php?&citySelect=401&type=1&loc=-1&languageID=1';
	break;
	case ((jakieMiasto == 402) && (jakaMaska == -1)):
	
			form.action = 'http://hotels.poland.com/hotels-at.php?&citySelect=402&type=1&loc=-1&languageID=1';
	break;
	case ((jakieMiasto == 403) && (jakaMaska == -1)):
	
			/*form.action = 'http://hotels.poland.com/hotels-at.php?&citySelect=403&type=1&loc=-1&languageID=1';*/
				form.action = 'http://villaelit.poland.com/';
	break;
	case((jakaMaska == 10001)&& (jakieMiasto == 1001)):
	form.action = 'http://scaliano.poland.com/pl/';
	break;
	case((jakaMaska == 10401)&& (jakieMiasto == 401)):
	form.action = 'http://dworekhetmanski.poland.com/pl/';
	break;
	case((jakaMaska == 10402)&& (jakieMiasto == 402)):
	form.action = 'http://gleboczek.poland.com/pl/';
	break;
	case((jakaMaska == 10403)&& (jakieMiasto == 403)):
	form.action = 'http://villaelit.poland.com/';
	break;
	case (jakaMaska == -1):
	form.action = 'hotele-wyniki.php';
	break;
	case (jakaMaska == -2):
	form.action = 'http://podolivka.poland.com/';
	break;
	case (jakaMaska == 10009):
	form.action = 'http://roztoka.poland.com/';
	break;
	case (jakaMaska == 10122):
	form.action = 'http://villapark.poland.com/';
	break;
	case (jakaMaska == -4):
	form.action = 'http://kazimierzs-secret.poland.com/';
	break;
	default:
	form.action = 'hotele-wynikidlahotelu-middle.php';
	}
	form.checkInDate.value = formatDate(arrDate);	
	form.departureDate.value = formatDate(depDate);
	var difference = Date.UTC(depDate.getYear(),depDate.getMonth(),depDate.getDate(),0,0,0)- Date.UTC(arrDate.getYear(),arrDate.getMonth(),arrDate.getDate(),0,0,0);
	form.numOfNightsSelect.value = difference/1000/60/60/24;
	form.submit();
	komunikat();
	return true;
	}
}

function verifyform_check(form)
{
        var today = new Date();
        today.setHours(0);
        today.setMinutes(0);
        today.setSeconds(0);
        today.setMilliseconds(0);
        var arrDate = str2dt4(form.checkInDate.value);
        var depDate = str2dt4(form.departureDate.value);
        form.departureDate.style.color="#000000";
        form.checkInDate.style.color="#000000";


        if (depDate <= arrDate)
        {
                alert('Abreisedatum muss später als Anreisedatum sein!');
                form.departureDate.style.color="#FF6600";
                return false;
        }
        if (arrDate < today)
                {
                        alert('Anreisedatum kann nicht vorherig als heutiges Datum sein!');
                        form.checkInDate.style.color="#FF6600";
                        return false;
                }
        if ((depDate-arrDate)/(1000*60*60*24) > 60)
        {
                alert('Abreisedatum kann nicht später als 60 Tage vom Anreisedatum sein!');
                        form.departureDate.style.color="#FF6600";
                return false;
        } else
        {

        form.checkInDate.value = formatDate(arrDate);
        form.departureDate.value = formatDate(depDate);
//      form.numOfNightsSelect.value = parseInt((depDate.getTime() - arrDate.getTime())/(1000*60*60*24));
                var difference = Date.UTC(depDate.getYear(),depDate.getMonth(),depDate.getDate(),0,0,0)- Date.UTC(arrDate.getYear(),arrDate.getMonth(),arrDate.getDate(),0,0,0);
        form.numOfNightsSelect.value = difference/1000/60/60/24;
        form.submit();
        komunikat();
        return true;
        }
}




function verifyform_maly(form)
{
	var today = new Date();
	today.setHours(0);
	today.setMinutes(0);
	today.setSeconds(0);
	today.setMilliseconds(0);
	var arrDate = str2dt4(form.checkInDate.value);
	var depDate = str2dt4(form.departureDate.value);
	form.departureDate.style.color="#000000";
	form.checkInDate.style.color="#000000";
	
	
	if (depDate <= arrDate)
	{
		alert('Abreisedatum muss später als Anreisedatum sein!');	
		form.departureDate.style.color="#FF6600";
		return false;
	}
	if (arrDate < today)
		{
			alert('Anreisedatum kann nicht vorherig als heutiges Datum sein!');	
			form.checkInDate.style.color="#FF6600";
			return false;
		}
	if ((depDate-arrDate)/(1000*60*60*24) > 60)
	{
		alert('Abreisedatum kann nicht später als 60 Tage vom Anreisedatum sein!');
			form.departureDate.style.color="#FF6600";
		return false;
	} else 
	{
		if (form.placeID){
		var jakaMaska = form.placeID.options[form.placeID.selectedIndex].value;
        var naszeMiasto = form.citySelect.options[form.citySelect.selectedIndex].value;
		
		if ((naszeMiasto == 1001)&&(jakaMaska == -1)){form.action = 'http://hotels.poland.com/hotels-at.php?&citySelect=1001&type=1&loc=-1&languageID=2'} else
		if (naszeMiasto == 1001){form.action = 'http://hotels.poland.com/hotels-at.php?&citySelect=1001&type=1&loc=-1&languageID=2'}       

		if ((naszeMiasto == 401)&&(jakaMaska == -1)){form.action = 'http://hotels.poland.com/hotels-at.php?&citySelect=401&type=1&loc=-1&languageID=2'} else
		if (naszeMiasto == 401){form.action = 'http://hotels.poland.com/hotels-at.php?&citySelect=401&type=3&loc=-1&languageID=2'}    
		
		if (jakaMaska == -1){
        	form.action = 'hotele-wyniki.php';
		}
		else if (jakaMaska == -2){
        	form.action = 'http://podolivka.poland.com/en/';}
		else if (jakaMaska == 10009){
        	form.action = 'http://roztoka.poland.com/';}
		else if (jakaMaska == 10122){
        	form.action = 'http://villapark.poland.com/';}
		else if (jakaMaska == -4){
        	form.action = 'http://kazimierzs-secret.poland.com/';}	
        else {
        	form.action = 'hotele-wynikidlahotelu-middle.php';}
		} else {
			var naszeMiasto = form.citySelect.options[form.citySelect.selectedIndex].value;
		
		if (naszeMiasto == 1001){form.action = 'http://hotels.poland.com/hotels-at.php?&citySelect=1001&type=1&loc=-1&languageID=2'}        
		if (naszeMiasto == 401){form.action = 'http://dworekhetmanski.poland.com/pl/'}    
		if (naszeMiasto == 402){form.action = 'http://gleboczek.poland.com/pl/'}
		if (naszeMiasto == 403){form.action = 'http://villaelit.poland.com/'}
        else {
        	form.action = 'hotele-wyniki.php';}
		}
	
	form.checkInDate.value = formatDate(arrDate);	
	form.departureDate.value = formatDate(depDate);
//	form.numOfNightsSelect.value = parseInt((depDate.getTime() - arrDate.getTime())/(1000*60*60*24));
		var difference = Date.UTC(depDate.getYear(),depDate.getMonth(),depDate.getDate(),0,0,0)- Date.UTC(arrDate.getYear(),arrDate.getMonth(),arrDate.getDate(),0,0,0);
	form.numOfNightsSelect.value = difference/1000/60/60/24;
	form.submit();
	document.getElementById("maskahotele-ramka-140").style.display = "none";
    document.getElementById("komunikat_maly").style.display = "block";
	return true;
	}
}

function dateFormatToUS(strDate){
	//zmienia format daty z yyyy-mm-dd na mm/dd/yyyy
	
	//alert('dateFormatToUS:\nwe: '+strDate);
	
	var re = new RegExp("([0-9]+)-([0-9]+)-([0-9]+)");

	re.exec(strDate);	

	var _r=RegExp.$1;
	var _m=RegExp.$2;
	var _d=RegExp.$3;

	var ret=''+_m+'/'+_d+'/'+_r;
	//alert('dateFormatToUS:\nwe: '+strDate+'\nwy: '+ret);
	if(ret=='//') ret='';
	return ret;
}// function dateFormatToUS(strDate)

