var load_info_cache = '';
var mouse_x = 0;
var mouse_y = 0;

function mouse_coords_save(e) {
	mouse_x = (document.all) ? window.event.clientX + document.body.scrollLeft : e.pageX;
	mouse_y = (document.all) ? window.event.clientY + document.body.scrollTop  : e.pageY;
}

function ToggleObject(prefix) {

	if (document.getElementById(prefix  + "_obj").style.display == 'none') {

		document.getElementById(prefix + "_img").src = "/design/default/icons/minus.gif";
		document.getElementById(prefix + "_img").alt = "[-]";
		document.getElementById(prefix + "_img").title = "Ausblenden";
		document.getElementById(prefix + "_obj").style.display = "";
		change_setting(prefix, 'visible');

	} else {

		document.getElementById(prefix + "_img").src = "/design/default/icons/plus.gif";
		document.getElementById(prefix + "_img").alt = "[+]";
		document.getElementById(prefix + "_img").title = "Einblenden";
		document.getElementById(prefix + "_obj").style.display = "none";
		change_setting(prefix, 'hidden');

	}

}

/* Ajax Fkt. ab hier */

function change_setting(setting, value) {

	http_request = false;

	if (window.XMLHttpRequest) {

		http_request = new XMLHttpRequest();

		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/xml');
		}

	} else if (window.ActiveXObject) {

		try {

			http_request = new ActiveXObject("Msxml2.XMLHTTP");

		} catch (E) {

			try {

				http_request = new ActiveXObject("Microsoft.XMLHTTP");

			} catch (E) {}

		}

	}

	if (!http_request) {

		return false;

	}

	http_request.open('GET', '/setting.php?setting='+ setting +'&value=' + value, true);
	http_request.send(null);

}

function load_info(page, id) {

	if (load_info_cache != page + id) {

		http_request = false;

		if (window.XMLHttpRequest) {

			http_request = new XMLHttpRequest();

			if (http_request.overrideMimeType) {
				http_request.overrideMimeType('text/xml');
			}

		} else if (window.ActiveXObject) {

			try {

				http_request = new ActiveXObject("Msxml2.XMLHTTP");

			} catch (E) {

				try {

					http_request = new ActiveXObject("Microsoft.XMLHTTP");

				} catch (E) {}

			}

		}

		if (!http_request) {

			document.getElementById("info_box").innerHTML = '<div style="text-align: center;"><br /><img src="/design/default/icons/fail.png" alt="" style="vertical-align: middle;" /> <b>Fehler...</b><br />AJAX konnte nicht initialisiert werden<br /><br /></div>';
			return false;

		}

		http_request.onreadystatechange = change_info;
		http_request.open('GET', '/modul.php?page='+ page +'&id=' + id, true);
		http_request.send(null);

		load_info_cache = page + id;

	}

}

function change_info() {

	if (http_request.readyState == 4) {
		
		if (http_request.status == 200) {

			document.getElementById("info_box").innerHTML = http_request.responseText;

		} else {

			document.getElementById("info_box").innerHTML = '<div style="text-align: center;"><br /><img src="/design/default/icons/fail.png" alt="" style="vertical-align: middle;" /> <b>Fehler...</b><br />Requestfehler<br /><br /></div>';

		}

	}
	
	if (setting_design_hideright == "1") {

			document.getElementById("info_box").style.left = (mouse_x + 10) + "px";
			document.getElementById("info_box").style.top = (mouse_y + 10) + "px";

			document.getElementById("info_box").style.display = "block";

	}

}

/*
 * Booking add Scripts
 */

function booking_add_load_calendar(field, with_date) {

	if (with_date == '') {

		if (field == 'date_start') {

			datefield_value = document.calendar_add.date_start.value;

		} else {

			datefield_value = document.calendar_add.date_end.value;

		}

		date_d = datefield_value.substr(0,2);
		date_m = datefield_value.substr(3,2);
		date_y = datefield_value.substr(6,4);

	} else {

		date_d = with_date.substr(0,2);
		date_m = with_date.substr(3,2);
		date_y = with_date.substr(6,4);

	}

	load_info('calendar', '0&field=' + field + '&date_y=' + date_y + '&date_m=' + date_m + '&date_d=' + date_d);

}

function load_calendar(calling_area, with_date) {

	if (with_date != '') {

		date_d = with_date.substr(0,2);
		date_m = with_date.substr(3,2);
		date_y = with_date.substr(6,4);

		load_info('calendar', '0&areatoload=' + calling_area + '&date_y=' + date_y + '&date_m=' + date_m + '&date_d=' + date_d);

	}

}

/*
 * Booking overview Scripts
 */

function booking_overview_goto_add(p_id, start_time) {

	document.goto_booking_add.p_id.value = p_id;
	document.goto_booking_add.date.value = start_time;

	document.goto_booking_add.submit();

}

function auto_move_info_box() {

	position_scrollTop = document.documentElement.scrollTop - position_info_box_start - 150; //150px w. Header

	if (position_scrollTop < 0) {

		position_scrollTop = 0;

	}

	document.getElementById("info_box").style.marginTop = position_auto_offset + 'px';

	if (position_scrollTop > 0 || position_auto_offset > 0) {

		if (position_scrollTop > position_auto_offset) {

			position_auto_offset += (position_scrollTop - position_auto_offset) / position_scrollTop * 100;

		} else if (position_scrollTop < position_auto_offset) {

			if (position_auto_offset > 0) {

				position_auto_offset -= Math.sqrt(Math.pow((position_auto_offset - position_scrollTop), 2) / 100);

			}

		}

	}

	if (position_auto_offset < 0) {

		position_auto_offset = 0;

	}

	setTimeout("auto_move_info_box()", 5);

}
