/* Funktions-Bibliothek */

var Tastencode = 0;
document.onkeydown = TasteGedrueckt;
var positionY = 0;
document.onmousemove = getPositionY;

// Diese Funktion wird immer aufgerufen, wenn eine Taste gedrückt wird:
function TasteGedrueckt(Ereignis) {
	Tastencode = 0;
 	if (!Ereignis)
		Ereignis = window.event;
	if (Ereignis.which)
		Tastencode = Ereignis.which;
//	alert("TasteGedrueckt, Tastencode: "+Tastencode);	
}

// Deaktivierung der Enter-Taste für ein Formular:
// Wenn diese Fkt. im onsubmit-Attribut eines Formulars übergeben wird
// und die Enter-Taste gedrückt wird, dann sende das Formular nicht ab!
function NurWennKeineEnterTaste() {
	// Tastencode: Globale Variable, in TasteGedrueckt() gesetzt
	if (Tastencode == 13) {
		return false;
	} else {
		return true;
	}
}

function evalKeyForSubmit(event, frm) {
	ret = 0;
	if (event && event.which == 13) ret = 1;
	if (window.event && window.event.keyCode == 13) ret = 1;	// IE
	if (ret == 1) {
		// ENTER gedrückt, also Formular abschicken
		frm.submit();
	} else {
		return true;
	}
}

function getCSSValue(strID, strCSS){
  var varValue;

  //  Falls der Brower die Methode "getComputedStyle" kennt (W3C-DOM)
  if(window.getComputedStyle){
    varValue = window.getComputedStyle(document.getElementById(strID), null)[strCSS];
  //  Falls der Browser die Methode "currentStyle" kennt (neuere IEs)
  }else if(document.getElementById(strID).currentStyle){
    varValue = document.getElementById(strID).currentStyle[strCSS];
  }

  return varValue;
}



function popUP(mypage, myname, w, h, toolbars, scroll, resize) {
	var win;
	var winl = (screen.width - w) / 2;
	var wint = (screen.height - h) / 2;
	winprops = 'height='+h+',width='+w+',top='+wint+',left='+winl+',toolbars='+toolbars+',scrollbars='+scroll+',resizable='+resize;
	win = window.open(mypage, myname, winprops);
	if (win != null && parseInt(navigator.appVersion) >= 4) {
		win.focus();
	} 
	self.name = "main";
	if (win.opener == null) win.opener = self;
}

function confirmChange(pHinweistext) {
	var hinweis = pHinweistext;
	if (confirm(hinweis) == true) {
		sendFormular('but_anzeige_seite_1', 'true');
	}
}

function sendFormular(varName, varValue) {
	getElement("id", "platzhalter1").value = varValue;
	getElement("id", "platzhalter1").name = varName;
	document.editform.submit();
}

function sendFormular2(arrName, arrValue) {
	for (var i = 0; i < arrName.length; ++i) {
		var nr = i + 1;
		getElement("id", "platzhalter"+nr.toString()).name = arrName[i];
		getElement("id", "platzhalter"+nr.toString()).value = arrValue[i];
	}
	document.editform.submit();

}

function ShowHide(idZiel, idRef) {
	if (document.getElementById) {
		if (document.getElementById(idRef).checked == true) {
			document.getElementById(idZiel).style.display = "block";
		} else {
			document.getElementById(idZiel).style.display = "none";
		}
	}
}

function schliessen(myname) {
	// nochmal Fenster mit demselben Namen laden, dann schliessen (sonst wird Fenster nicht geschlossen):
	win = window.open("", myname, "height=200,width=400");
	if (win) win.close();
}

function LeereFeld(obj, text) {
	if (obj.value == text) {
		obj.value = '';
	}
}

function swapImage(id, newSource) {
	var bild = getElement("id", id);
	bild.src = newSource;
}

function getPositionY(Ereignis) {
	if (!Ereignis)
		Ereignis = window.event;
	positionY = Ereignis.clientY;
}

function showNotiz(id) {
	var notiz = getElement("id", id);
	var winheight = window.innerHeight;
 	var abstand = positionY;
   notiz.style.top = positionY + "px";
   notiz.style.display = "block";
 	if ((positionY + notiz.offsetHeight) > winheight) {
		abstand = winheight - 2 * notiz.offsetHeight;
	} else if (positionY < winheight / 2) {
		abstand = winheight / 2 + positionY;
	}
   notiz.style.top = abstand + "px";
   notiz.style.display = "block";
 }

		
function kwToPs(kw) {
	return Math.round(kw * 1.35962);
}

function psToKw(ps) {
	return Math.round(ps * 0.735499);
}

function checkUncheckAll(theElement, checkBoxName) {
	var theForm = theElement.form, z = 0;
	for (z=0; z<theForm.length; z++){
		if (theForm[z].type == 'checkbox' && theForm[z].name == checkBoxName) {
			theForm[z].checked = theElement.checked;
		}
	}
}

function checkOneUncheckRest(theElement, checkBoxName, changeElement, changeValue) {
	var theForm = theElement.form;
	var z = 0;
	// Wenn keine Checkbox gefüllt ist, 
	if (theElement.checked == 0) {
		// Checkbox-Element darf nicht abgewählt werden
		theElement.checked = 1;
	} else {
		for (z=0; z<theForm.length; z++){
			if (theForm[z].type == 'checkbox' && theForm[z].name == checkBoxName) {
				theForm[z].checked = 0;
			}
		}
		theElement.checked = 1;
	}
	if (theElement.checked == 1) {
		changeElement.value = changeValue;
	} else {
		changeElement.value = '';
	}
}


function fuelleListe(listeObj, selectID, ordID_selected, ID_selected, arrAlleElemente) {
	var n = 0; 
	var lenAll = arrAlleElemente.length;
	
	listeObj.options.length = 0;

	n = 0;
	if (lenAll > 0) {
		var selIndex = 0;
		for (var i = 0; i < lenAll; i++) {
			if (arrAlleElemente[i][2] == ordID_selected) {
				var sel = Hinzufuegen(listeObj, arrAlleElemente[i][1], arrAlleElemente[i][0], ID_selected);
				if (sel == 1) {
					selIndex = n;
				}
				n++;
			}
		}
		listeObj.selectedIndex = selIndex;
	}
}

function Hinzufuegen(listeObj, valueStr, valueID, ID_selected) {
	NeuerEintrag = new Option(valueStr, valueID, false, false);
	listeObj.options[listeObj.length] = NeuerEintrag;
	if (valueID == ID_selected) {
		return 1;
	}
	return 0;
}

function checkChange(ID_selected, IdElementNormal, IdElementAlternate, listeObj, Zusatz, IdZusatzHinweistext) {
	ID_change = listeObj.value;
	if (ID_change != ID_selected) {
		elemN = getElement("id", IdElementNormal);
		elemN.style.display = "none";
		elemA = getElement("id", IdElementAlternate);
		elemA.style.display = "block";
	} else {
		elemN = getElement("id", IdElementNormal);
		elemN.style.display = "block";
		elemA = getElement("id", IdElementAlternate);
		elemA.style.display = "none";
	}
	checkHinweistext(listeObj, Zusatz, IdZusatzHinweistext);
}

function checkHinweistext(listeObj, Zusatz, IdZusatzHinweistext) {

	// Wenn gewähltes Element mit Zusatz markiert ist, dann zeige den Hinweistext, sonst blende ihn aus:
	var display = "none";
	len = Zusatz.length;
	textElement = listeObj.options[listeObj.selectedIndex].text;
	pos = textElement.length - Zusatz.length;
	if (Zusatz.length > 0 && pos > 0) {
		if (textElement.substr(pos, Zusatz.length) == Zusatz) {
			display = "block";
		}
	}
	document.getElementById(IdZusatzHinweistext).style.display = display;
}


function xmlBildnameSchreiben(formtemplateBildID, arrSatzelementIDs, tabellenZeile, bildName, theForm) {

	// Wird die Tabellenzeile mit einem markierten Bild gelöscht, 
	// dann lösche auch den Bildnamen im Hidden-Field "xml_bild_<id>_name"

	for (z=0; z<arrSatzelementIDs.length; z++){
		elementName = 'fuerprint_id_'+formtemplateBildID+'_satzelementid_'+arrSatzelementIDs[z]+'[]';
		if (theForm.elements[elementName].length > 0) {
			elChk = theForm.elements[elementName][tabellenZeile-1].checked;
		} else {
			elChk = theForm.elements[elementName].checked;
		}

//		if (theForm.elements[elementName].checked == 1) {
		if (elChk == 1) {
			theForm.elements["xml_bild_"+arrSatzelementIDs[z]+"_name"].value = bildName;
		}
	}
}

function openHelpWindow(theme, title, w, h, html) {
	helpwin = new Window({className: theme, title: title, width:w, height:h, zIndex: 1000, draggable:true, wiredDrag: true, resizable: true, destroyOnClose: true, recenterAuto:false});
	helpwin.getContent().innerHTML = html;
	helpwin.showCenter();
}

