// JavaScript Document
var objId = 0;					// ID des Elements
var objPage = 0;				// ID der Seite
var objUrl = null;			// Url für den AjaxRequest
var expandBegin = 0;		// Flag, ob Expansion schon durchgeführt wird

var objAktuell = null;	// Element, über dem Maus bewegt wurde
var block = false;			// Element, über dem Maus bewegt wurde
var objDrag = null;			// Element, über dem Maus bewegt wurde
var objExpand = null;		// Element, über dem Maus bewegt wurde
var objLineal = null;		// Element, über dem Maus bewegt wurde

var mouseOldX 	 = 0;		// X-Koordinate der Maus
var mouseOldY 	 = 0;		// Y-Koordinate der Maus
var mouseX 	 = 0;				// X-Koordinate der Maus
var mouseY 	 = 0;				// Y-Koordinate der Maus

var offX = 0;						// X-Offset des Elements, das geschoben werden soll
var offY = 0;						// Y-Offset des Elements, das geschoben werden soll

var width = 0;					// X-Offset des Elements, das geschoben werden soll
var height = 0;					// Y-Offset des Elements, das geschoben werden soll

// Browserweiche
IE = document.all && !window.opera;
DOM = document.getElementById && !IE;

// Initialisierung der Überwachung der Events
document.onmousemove = doDrag;
document.onmouseup = stopDrag;
document.onkeypress = tastenbelegung;

// Wird aufgerufen, wenn ein Formular abgeschickt wird
function proofAGB() {
	// hier werden die AGB geprüft
	agb = $('agb');
	if(agb){
		if(agb.checked == true){
			return true;
		} else {
			alert("Wenn Sie mich buchen moechten, muessen Sie meine AGB akzeptieren");
			return false;
		}
	}
}

// Wird aufgerufen, wenn eine Taste gedrückt wird
function tastenbelegung (event) {
	if (!event){
    event = event || window.event;
	}

	if(event.ctrlKey && event.altKey){
		if(event.keyCode == 38){
			wert_daten_aendern('daten', "r_top" , -10);
		}
		if(event.keyCode == 40){
			wert_daten_aendern('daten', "r_top" , 10);
		}
		if(event.keyCode == 39){
			wert_daten_aendern('daten', "r_left" , 10);
		}
		if(event.keyCode == 37){
			wert_daten_aendern('daten', "r_left" , -10);
		}
	}

	if(objAktuell != null && block == false){
		if(event.ctrlKey && !event.altKey){
			if(event.keyCode == 38){
				wert_aendern(objAktuell, "r_top" , -10);
			}
			if(event.keyCode == 40){
				wert_aendern(objAktuell, "r_top" , 10);
			}
			if(event.keyCode == 39){
				wert_aendern(objAktuell, "r_left" , 10);
			}
			if(event.keyCode == 37){
				wert_aendern(objAktuell, "r_left" , -10);
			}
		} else if(event.shiftKey && !event.altKey) {
			if(event.keyCode == 38){
				wert_aendern(objAktuell, "r_top" , -1);
			}
			if(event.keyCode == 40){
				wert_aendern(objAktuell, "r_top" , 1);
			}
			if(event.keyCode == 39){
				wert_aendern(objAktuell, "r_left" , 1);
			}
			if(event.keyCode == 37){
				wert_aendern(objAktuell, "r_left" , -1);
			}
		}
	}
}

// Wird aufgerufen, wenn die Maus über einer ExpandBox gedrückt wird
function startExpand(objElem, id, page, url) {
	// Objekt der globalen Variabel zuweisen -> hierdurch wird Bewegung möglich
	if(document.getElementById(objElem)){
		objExpand = document.getElementById(objElem);
	
		objExpand.style.border = '1px dotted #000000';
		objExpand.style.backgroundColor = '#FFCCCC';
	
		// Offsets im zu bewegenden Element ermitteln
		objId = id;
		objPage = page;
		objUrl = url;
		expandBegin = 0;
	
		width = parseInt(objExpand.style.width);
		height = parseInt(objExpand.style.height);
	
		if(id != null){
			objLineal = document.getElementById('lineal_werte_' + objId);
		}
	}
}

// Wird aufgerufen, wenn die Maus über einer BewegungsBox gedrückt wird
function startDrag(objElem, id, page, url) {
	// Objekt der globalen Variabel zuweisen -> hierdurch wird Bewegung möglich
	if(document.getElementById(objElem)){
		objDrag = document.getElementById(objElem);

		objDrag.style.backgroundColor = '#FFCCCC';
	
		// Offsets im zu bewegenden Element ermitteln
		objId = id;
		objPage = page;
		objUrl = url;

		offX = mouseX - objDrag.offsetLeft;
		offY = mouseY - objDrag.offsetTop;
		
		if(id != null){
			objLineal = document.getElementById('lineal_werte_' + id);
		}
	}
}

// Wird ausgeführt, wenn die Maus bewegt wird
function doDrag(ereignis) {
	// Aktuelle Mauskoordinaten bei Mausbewegung ermitteln
	if(expandBegin != 1){
		mouseOldX = (IE) ? window.event.clientX : ereignis.pageX;
		mouseOldY = (IE) ? window.event.clientY : ereignis.pageY;
		expandBegin = 1;
	}
	mouseX = (IE) ? window.event.clientX : ereignis.pageX;
	mouseY = (IE) ? window.event.clientY : ereignis.pageY;

	// Wurde die Maus über einem Element gedrück, erfolgt eine Bewegung
	if (objDrag != null) {
		// Element neue Koordinaten zuweisen
		objDrag.style.left = (mouseX - offX) + "px";
		objDrag.style.top = (mouseY - offY) + "px";
		
		if(objLineal != null){
			objLineal.innerHTML = 'X:' + objDrag.style.left + ' Y:' + objDrag.style.top;
		}

		// Position in Statusleiste ausgeben
		window.status = "Box-Position: " + objDrag.style.left + ", " + objDrag.style.top;
	}

	// Hier kann das Objekt in seiner Größe verändert werden
	if (objExpand != null) {
		// Element neue Größe zuweisen
		widthNew = mouseX - mouseOldX;
		heightNew = mouseY - mouseOldY;
		
		objExpand.style.width = (width + widthNew) + "px";
		objExpand.style.height = (height + heightNew) + "px";
		
		if(objLineal != null){
			objLineal.innerHTML = 'B:' + objExpand.style.width + ' H:' + objExpand.style.height;
		}

		// Position in Statusleiste ausgeben
		window.status = "Box-Position: " + objExpand.style.width + ", " + objExpand.style.height;
	}
}

// Wird ausgeführt, wenn die Maustaste losgelassen wird
function stopDrag(ereignis) {
	// Veränderung des Objektes wird gespeichert
	if(objExpand != null){
		if(objUrl != null){
			var vars = 'id=' + objId + '&page=' + objPage + '&width=' + parseInt(objExpand.style.width) + '&height=' + parseInt(objExpand.style.height);
			var myAjax = new Ajax.Request(
				objUrl,
				{
					method: 'get',
					parameters: vars 
				}
			);
		}
		width = parseInt(objExpand.style.width);
		height = parseInt(objExpand.style.height);
		objExpand.style.backgroundColor = '';
		expandBegin = 0;
	}
	// Bewegung des Objektes wird gespeichert
	if(objDrag != null){
		if(objUrl != null){
			var vars = 'id=' + objId + '&page=' + objPage + '&left=' + parseInt(objDrag.style.left) + '&top=' + parseInt(objDrag.style.top);
			var myAjax = new Ajax.Request(
				objUrl,
				{
					method: 'get',
					parameters: vars 
				}
			);
		}
		objDrag.style.backgroundColor = '';
	}
	// Objekte löschen -> beim Bewegen der Maus wird Element nicht mehr verschoben
	objDrag = null;
	objExpand = null;
	objLineal = null;
}

function wert_daten_aendern(id,objekt,wert){
	if(objekt == 'r_top'){
		aktueller_wert = parseInt(document.getElementById(id).style.top);
		aktueller_wert += wert;
		top_aktualisieren(id,aktueller_wert);
	}
	if(objekt == 'r_left'){
		aktueller_wert = parseInt(document.getElementById(id).style.left);
		aktueller_wert += wert;
		left_aktualisieren(id,aktueller_wert);
	}
}

function wert_aendern(id,objekt,wert){
	if(document.getElementById(objekt)){
		var aktueller_wert = eval(document.getElementById(objekt).value);
		aktueller_wert += wert;
		document.getElementById(objekt).value = aktueller_wert;
	}
	if(objekt == 'r_top'){
		top_aktualisieren(id,aktueller_wert);
	}
	if(objekt == 'r_left'){
		left_aktualisieren(id,aktueller_wert);
	}
}

function top_aktualisieren(id,wert) { //v2.0\r\n
	if(document.getElementById(id)){
		zahl = wert + 'px';
		document.getElementById(id).style.top = zahl;
	}
}

function left_aktualisieren(id,wert) { //v2.0\r\n
	if(document.getElementById(id)){
		zahl = wert + 'px';
		document.getElementById(id).style.left = zahl;
	}
}

function width_aktualisieren(id,wert) { //v2.0\r\n
	if(document.getElementById(id)){
		zahl = wert + 'px';
		document.getElementById(id).style.width = zahl;
	}
}

function height_aktualisieren(id,wert) { //v2.0\r\n
	if(document.getElementById(id)){
		zahl = wert + 'px';
		document.getElementById(id).style.height = zahl;
	}
}

function highlightElement() { //v2.0\r\n
	var objInhalt = null;
	var objDaten = null;

	objDaten = document.getElementById('daten');
	
	if(objAktuell){
		objInhalt = document.getElementById(objAktuell);
		objInhalt.style.backgroundColor = '#FFCCCC';
	}
	// Größe des Bildschirms wird ermittelt
	hScroll = (IE) ? document.body.scrollLeft : window.pageXOffset;
	vScroll = (IE) ? document.documentElement.scrollTop : window.pageYOffset;
	
	if(mouseX < (screen.width / 2)){
		myLeft = (mouseX - hScroll) + 50;
	} else {
		myLeft = (mouseX - hScroll) - 500;
	}
	if(myLeft < 10){
		myLeft = 10;
	}	

	myTop = (IE) ? (mouseY + vScroll) -200 : (mouseY) -200;
	if(myTop < 10){
		myTop = 10;
	}	
	// Objektfenster wird positioniert
	objDaten.style.top = myTop + 'px';
	objDaten.style.left = myLeft + 'px';
}

function setBlock(wert) { //v2.0\r\n
	block = wert;
}

function showPopup(objPopup, wert) { //v2.0\r\n

	objShow = document.getElementById(objPopup);

	if(mouseX < (screen.width / 2)){
		myLeft = (screen.width / 2);
	} else {
		myLeft = (screen.width / 2) - objShow.style.width;
	}

	myTop = (screen.height / 2) - 300;
	if(myTop < 10){
		myTop = 10;
	}
	
	objShow.style.top = myTop + 'px';
	objShow.style.left = myLeft + 'px';
	objShow.style.display = wert;
}

function showAktiverMenuepunkt(wert) { //v2.0\r\n
	if(wert == -2){
		document.getElementById('div_mpactive').style.display='block';
	} else {
		document.getElementById('div_mpactive').style.display='none';
	}
}

function update_bild() {
	endung=document.getElementById('bild').value.substr(-4,4);
	if(endung == '.swf'){
		document.getElementById('div_text').style.display='none';
		datei = '/images/' + document.getElementById('bild').value;
		eintrag = '<object classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\" codebase=\"http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0\" height=\"150\" id=\"flash\" align=\"middle\">';
		eintrag = eintrag + '<param name=\"allowScriptAccess\" value=\"sameDomain\"/>';
		eintrag = eintrag + '<param name=\"movie\" value=\"' + datei + '\"/>';
		eintrag = eintrag + '<param name=\"quality\" value=\"high\"/>';
		eintrag = eintrag + '<param name=\"bgcolor\" value=\"#ffffff\"/>';
		eintrag = eintrag + '<embed src=\"' + datei + '\" quality=\"high\" bgcolor=\"#ffffff\" height=\"150\" name=\"flash\" align=\"middle\" allowScriptAccess=\"sameDomain\" type=\"application/x-shockwave-flash\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\"/>';
		eintrag = eintrag + '</object>';		
		document.getElementById('div_bild_anzeigen').innerHTML = eintrag;
		document.getElementById('div_bild_anzeigen').style.display='block';
	} else {
		datei = '/images/' + document.getElementById('bild').value;
		if (document.getElementById('bild').value != '') {
			document.getElementById('div_text').style.display='none';
			document.getElementById('div_bild_anzeigen').innerHTML="<img name='bild_anzeige' id='bild_anzeige' height='150px' src='" + datei + "'>";
			document.getElementById('div_bild_anzeigen').style.display='block';
		} else {
			document.getElementById('div_bild_anzeigen').style.display='none';
			document.getElementById('div_text').style.display='block';
			document.getElementById('bild_anzeige').src = '';
		}
	}
}

