var gl_col;
var over_color = '#d9f7e1';
var down_color_1 = '#dceeff';
var down_color_2 = '#dcdeff';

function getOverColor(tr_id)
{
	gl_col = tr_id.bgColor;
	return over_color;
}

function getOutColor(tr_id)
{
	return gl_col;
}

function getDownColor(tr_id)
{
	var ret_col;

	if (gl_col == '#fffaf0' || gl_col == '#FFFAF0')
	{
		ret_col = gl_col = down_color_1;
		return ret_col;
	}

	if (gl_col == '#f5f5f5' || gl_col == '#F5F5F5')
	{
		ret_col = gl_col = down_color_2;
		return ret_col;
	}

	if (gl_col == down_color_1)
	{
		ret_col = gl_col = 'fffaf0';
		return ret_col;
	}

	if (gl_col == down_color_2)
	{
		ret_col = gl_col = 'f5f5f5';
		return ret_col;
	}

	return ret_col;
}

wmtt = null;
rfhd = null;
document.onmousemove = updateWMTT;
lp = 20;
tp = 20;
rfmax = 16;

function updateWMTT(e) {
	x = (document.all) ? window.event.x + document.body.scrollLeft : e.pageX;
	y = (document.all) ? window.event.y + document.body.scrollTop  : e.pageY;
	if (wmtt != null) {
		wmtt.style.left = (x + lp) + "px";
		wmtt.style.top 	= (y + tp) + "px";
	}
}

function showWMTT(id) {
   if (navigator.appName == "Microsoft Internet Explorer"){
      for (var i = 1; i <= rfmax; i++){
         rfhd = document.getElementById('rf_' + i);
         rfhd.style.visibility = "hidden";
      }
   }
   wmtt = document.getElementById(id);
   wmtt.style.display = "block";
}

function hideWMTT() {
   if (navigator.appName == "Microsoft Internet Explorer"){
      for (var i = 1; i <= rfmax; i++){
         rfhd = document.getElementById('rf_' + i);
         rfhd.style.visibility = "visible";
      }
   }
	wmtt.style.display = "none";
}

function disableSecondDate() {
    forma = document.ReservationForm;

    if (forma.one_day_reservation.checked == true) {
        select_disable_status = true;
    } else {
        select_disable_status = false;
    }

    forma.rf_4.disabled = select_disable_status;
    forma.rf_5.disabled = select_disable_status;
    forma.rf_6.disabled = select_disable_status;
}

function disableDates(){
    forma = document.searchForm;

    if (forma.ignore_date.checked == true) {
        select_disable_status = true;
    } else {
        select_disable_status = false;
    }

    forma.j_yea.disabled = select_disable_status;
    forma.j_mon.disabled = select_disable_status;
    forma.j_day.disabled = select_disable_status;
    forma.d_yea.disabled = select_disable_status;
    forma.d_mon.disabled = select_disable_status;
    forma.d_day.disabled = select_disable_status;
}

// select dependence on
var d_yea_changed = 1;
var d_mon_changed = 1;
var d_day_changed = 1;

function ChangeDepSel (sel, tgt){
   if (tgt == 'd_yea' && d_yea_changed == 1)  document.ReservationForm.d_yea.value = sel.value;
   if (tgt == 'd_mon' && d_mon_changed == 1)  document.ReservationForm.d_mon.value = sel.value;
   if (tgt == 'd_day' && d_day_changed == 1)  document.ReservationForm.d_day.value = sel.value;
}

function ChangeSelDependence (tgt){
   // turn off select (journey -> departure) dependence
   if (tgt == 'd_yea')  d_yea_changed = 0;
   if (tgt == 'd_mon')  d_mon_changed = 0;
   if (tgt == 'd_day')  d_day_changed = 0;
}

function TurnOffSelDependences () {
   d_yea_changed = 0;
   d_mon_changed = 0;
   d_day_changed = 0;
}

function fillOtherFields (src, tgt, vname) {
   if (vname == 'paytype_'){
      var opt = 1;
   }
   var vars = tgt.split (',');
   var len = vars.length;
   var s = document.getElementById(vname + src);

   for (var i = 0; i < vars.length; i++) {

      if (vars[i] != src) {
         var t = document.getElementById(vname + vars[i]);
         if (t != null && (t.value == '' || opt == 1)){
            t.value = s.value;
         }
      }
   }
}






// Popup date picker


var nowDate = new Date();


function showCalendar(dayF, monF, yearF){

	var dayOfWeek = ['Mo','Die','Mi','Do','Fr','Sa','So'];
	var monthName = ['Januar','Februar','Marz','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember'];
	dayOfNormalYear = [31,28,31,30,31,30,31,31,30,31,30,31];
	dayOfLeapYear = [31,29,31,30,31,30,31,31,30,31,30,31];


	nowDate.setDate(1);
	month = nowDate.getMonth();
	year = nowDate.getFullYear();
	//check for leap year.
	if((year % 4) == 0){
		maxDay = dayOfLeapYear[month];
	}
	else{
		maxDay = dayOfNormalYear[month];
	}

	var firstWeek = nowDate.getDay();
	if(firstWeek == 0){
		firstWeek = 6;
	}
	else{
		firstWeek -= 1;
	}

	windowHandler = window.open("", "Calendar",	"width=200,height=240,status=no,resizable=no,top=200,left=200");
	//drawwing start of HTML code
	var code = '<html><head><title>Calendar</title><STYLE>A{text-decoration: none;};</STYLE></head><body alink="#000000" vlink="#000000" link="#000000">';

	//drawwing calendar
	code += '<div><table border=0 cellspacing="2">';
	//year
	code += '<tr><td colspan=2 align="center" bgcolor="#FFC0CB"><a href="javascript:window.opener.changeYear(-1,\''+dayF+'\',\''+monF+'\',\''+yearF+'\');"><<</a></td><td colspan=3 align="center" bgcolor="#FFC0CB">'+year+'</td><td colspan=2 align="center" bgcolor="#FFC0CB">	<a href="javascript:window.opener.changeYear(+1,\''+dayF+'\',\''+monF+'\',\''+yearF+'\');">>></a></td></tr>';

	//month
	code += '<tr><td colspan=2 align="center" bgcolor="#FFDDDD">	<a href="javascript:window.opener.changeMonth(-1,\''+dayF+'\',\''+monF+'\',\''+yearF+'\');"><<</a></td><td colspan=3 align="center" bgcolor="#FFDDDD">'+monthName[month]+'</td><td colspan=2 align="center" bgcolor="#FFDDDD"><a href="javascript:window.opener.changeMonth(+1,\''+dayF+'\',\''+monF+'\',\''+yearF+'\');">>></a></td></tr>';
	//days of week
	code += '<tr>';
	for(var i=0; i<7; i++){
		code += '<td align="center" bgcolor="#FFFFF0">'+dayOfWeek[i]+'</td>';
	}
	code += '</tr>';

	//first row of dates
	code += '<tr>';
	var dayNumber = 1;
	for(var i=0; i<7; i++){
		if(i<firstWeek){
			code += '<td width="14%" align="center" bgcolor="#E6E6FA">&nbsp</td>';
		}
		else{
			code += '<td width="14%" align="center" bgcolor="#E6E6FA"><a href="javascript:window.opener.setDateToForm('+dayNumber+','+month+','+year+',\''+dayF+'\',\''+monF+'\',\''+yearF+'\')">'+dayNumber+'</a></td>';
			dayNumber++;
		}

	}
	code += '</tr>';
	//another 5 rows
	for(var j=0; j<5; j++){
		code += '<tr>';
		for(var i=0; i<7; i++){
			if(dayNumber <= maxDay){
				code += '<td width="14%" align="center" bgcolor="#E6E6FA"><a href="javascript:window.opener.setDateToForm('+dayNumber+','+month+','+year+',\''+dayF+'\',\''+monF+'\',\''+yearF+'\')">'+dayNumber+'</a></td>';
				dayNumber++;
			}
			else{
				code += '<td width="14%" align="center" bgcolor="#E6E6FA">&nbsp</td>';
			}
		}
		code += '</tr>';
	}
	code += '</table></div>';
	code += '</body></html>';

	windowHandler.document.writeln(code);
	windowHandler.document.close();


}


function setDateToForm(dayNum, monthNum, yearNum, dayF, monF, yearF){

	++monthNum;

	document.getElementById(dayF).value = dayNum;
	document.getElementById(monF).value = monthNum;
	document.getElementById(yearF).value = yearNum;
    gocalc();
	windowHandler.close();
}

function changeYear(direction, dayF, monF, yearF){
	if(direction == -1){
		year = nowDate.setFullYear(--year);
	}
	if(direction == +1){
		year = nowDate.setFullYear(++year);
	}
	showCalendar(dayF, monF, yearF);
}

function changeMonth(direction, dayF, monF, yearF){
	if(direction == -1){
		month = nowDate.setMonth(--month);
	}
	if(direction == +1){
		month = nowDate.setMonth(++month);
	}
	showCalendar(dayF, monF, yearF);
}


