// JavaScript Document <script language="JavaScript" type="text/JavaScript">

function MG_openWin(theURL,winName) { 
  window.open(theURL,winName, 'toolbar=no,location=no,status=no,menubar=yes,scrollbars=yes,resizable=yes,width=520,height=620');
}

function MM_openInfoWindow(theURL) { 
  window.open(theURL,'info','toolbar=no,location=no,menubar=no,scrollbars=yes,resizable=yes,width=350,height=400');
}

function MG_openUploadWin(theURL,winName) { 
  window.open(theURL,'Dateiupload','toolbar=no,location=no,menubar=no,scrollbars=no,resizable=no,width=450,height=120');
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
 	window.open(theURL,winName,features); 
}

function MG_openPreviewWin(theURL,winName) {
    window.open(theURL, winName, 'toolbar=no,location=no,status=no,menubar=yes,scrollbars=yes,resizable=yes,width=670,height=1000');
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_goToURL() { //v3.0
  var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}

// hiermit werden die Klassen im Submenu bei "onload" gesetzt
function setClass(objName,newStyle) {
  obj = MM_findObj(objName);
  obj.className = newStyle;
}

// ulfr, 10.04.2004
function na_call(str)
{
  eval(str);
}

// ulfr, 10.04.2004
function SetCmdID(nCmdID) 
{
	document.getElementsByName("CmdID")[0].value = nCmdID
}

// ulfr, 10.10.2006
// SetAction( 'frmMitgliederKlassifikation', ../mitglieder/MitgliederKlassifikation.asp')
function SetAction ( frm, url ) {
	if ( frm == '') frm = '#'	
	document.getElementsByName(frm)[0].action = url; 
}

// ulfr, 10.04.2004
function HasInputControls()
{
  for( i = 0; i < document.forms.length; i++ )
  {
    if( document.forms[i].elements.length > 0 ) return true;
  }
  return false;
}




// ulfr, 10.04.2004
// loadURL( 'frmMitgliederKlassifikation', ../mitglieder/MitgliederKlassifikation.asp', '_self', true, '' )

function loadURL( frm, url, target, bSubmit, features )
{
  if( bSubmit && HasInputControls() )
  {	
	
	if ( frm == '') frm = '#'
	
	document.getElementsByName(frm)[0].action = url; 
	document.getElementsByName(frm)[0].target = target; 
	document.getElementsByName(frm)[0].submit();
  }
  else
  {
    if( features != '' ) window.open( url, target, features );
    else window.open( url, target );		
  }
}

// ulfr, 10.04.2004
// Image vergroessern bzw. verkleinern
function onEvenResizeElement( element, h, w, zoomfactor, i ) {
	if ( i == '') i = 0
	document.getElementsByName(element)[i].width = w *  zoomfactor;
	document.getElementsByName(element)[i].height = h * zoomfactor;
}	


// ulfr, 18.05.2004
function onEvenSetFocus(element, i) {
    if (i == '') i = 0
    document.getElementsByName(element)[i].focus();
}


// ulfr, 17.11.2010
function onEvenSetFocusByID(element, i) {
    if (i == '') i = 0
    document.getElementById(element).focus();
}


// ----------------------------------------------------------------------------------------------
// ulfr, 14.12.2003
// Prüft Browserversion auf kompatibilitaet
// Netscape > 6.0 , Microsoft IIS > 5.0
// ----------------------------------------------------------------------------------------------

function MM_checkBrowser(NSvers,NSpass,NSnoPass,IEvers,IEpass,IEnoPass,OBpass,URL,altURL) 
{ 
  	// v4.0
  	var newURL='', verStr=navigator.appVersion, app=navigator.appName, version = parseFloat(verStr);

	if (app.indexOf('Netscape') != -1) 
  	{
		if (version >= NSvers) 
		{
			if (NSpass>0) newURL=(NSpass==1)?URL:altURL;
		}
    		else 
		{
			if (NSnoPass>0) newURL=(NSnoPass==1)?URL:altURL;
		}
  	} 
	else if (app.indexOf('Microsoft') != -1) 
	{
    		if (version >= IEvers || verStr.indexOf(IEvers) != -1)
     		{
			if (IEpass>0) newURL=(IEpass==1)?URL:altURL;
		}
    		else {
			if (IEnoPass>0) newURL=(IEnoPass==1)?URL:altURL;
		}
  	} 
	else if (OBpass>0) newURL=(OBpass==1)?URL:altURL;

  	if (newURL) 
	{ 
					
		window.location=unescape(newURL); 
		document.MM_returnValue=false; 
	}
}


// ----------------------------------------------------------------------------------------------
// URL im OnLoad Ereigniss aufgerufen
// <body onLoad="MM_goToURL('parent','page.html'); return document.MM_returnValue">
// ----------------------------------------------------------------------------------------------

function MM_goToURL() { //v3.0
  var i, args=MM_goToURL.arguments; 
  document.MM_returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}

// ----------------------------------------------------------------------------------------------
// ulfr, 12.11.2004
// Alle Checkboxen eines Formulares zucksetzen, falls diese 
// nicht in den Uebergabeparameter angegeben sind
// ----------------------------------------------------------------------------------------------
/*
function OnClickResetCheckbox() 
{	
	var i,j,k,nArgsExist,nCount
	var aArgs=OnClickResetCheckbox.arguments; 	
	var x,d = document
	
	// durch alle Formulare iterieren
 	for( k = 0; k < d.forms.length; k++ ){

		// pruefen ob Elemenete im akteullen Formular vorhanden sind	
		x = d.forms[k].elements
		nCount = d.forms[k].elements.length
		if( nCount > 0 ) {		
			// alle Elemente des aktuellen Formulars iterieren
			for ( i = 0  ; i <= nCount - 1; i++ ){		
				nArgsExist = 0			
	  			for (j=0; j<(aArgs.length-1); j++) {	
					if ((aArgs[j] == x[i].name)){
						 nArgsExist = 1
					}	 
				}
				// Falls Checkbox gesetzt und diese nicht durch 
				// Uebergabeparameter ausgeschlossen ist
				if ((x[i].type == 'checkbox') && (nArgsExist == 0)) {	
					x[i].checked = false						
				}	
			}				
		}
 	}
}
*/	

// Checkbox und Freitext bearbeiten
// ulfr, 15.11.2004
function OnClickResetFreiText(oObj,sElement) 
{  	 
	 var oElement = document.getElementsByName(sElement)[0]
	 if (oObj.checked == false){
	 	oElement.value = ''
	 }
}

// ulfr, 15.11.2004
function OnKeyUpFreiText(oObj,sCheckbox) 
{  
     var sValue = oObj.value;
	 var oElement = document.getElementsByName(sCheckbox)[0]
     if (sValue != "" ){	 
     	oElement.checked = true	
     }
     else {	 	
     	oElement.checked = false
     }           
}

// ulfr, Image Resize
function onEvenResizeImage( element, h, w, zoomfactor ) {
	document.getElementsByName(element)[0].width = w *  zoomfactor
	document.getElementsByName(element)[0].height = h * zoomfactor
}	

// nur nummerische Werte als Eingabe zulassen
// ulfr, 17.02.2005
function onKeyPressNumeric() {
	var key = window.event.keyCode
	//if (!((key>=48&&key<=57)||(key==8)||(key==13)||(key==27)||(key>=43&&key<=46))){
	if (!((key>=48&&key<=57)||(key==8)||(key==13)||(key==27))){
		window.event.keyCode = 0
    }	
}

function onKeyPressNumericWithChar() {
	var key = window.event.keyCode
	if (!((key>=48&&key<=57)||(key==8)||(key==13)||(key==27)||(key>=43&&key<=47))){
		window.event.keyCode = 0
    }			
}

function onKeyDownReturn() {
	
	var key;
			
     if(window.event) {
          key = window.event.keyCode;     // IE
	}	  
    else {
         key = event.which;     // firefox
	}
		  		  
	if(key==13) {
		 if(window.event) {
			 window.event.keyCode= 9;
		 }
		 else {			 
			 event.which = 9;
		 }
	}	  

}

function onKeyPressStop() {
	window.event.keyCode = 0
}

// ----------------------------------------------------------------------------------------------
// ulfr, 05.07.2005
// Alle Komponenten im aktuellen Formular leeren, die nicht dem Übergabeobjekt entsprechen 
// ----------------------------------------------------------------------------------------------

function onEvenResetComp(oObj) 
{  
	var i,k,nArgsExist,nCount		
	var x,d = document
		
	// durch alle Formulare iterieren
 	for( k = 0; k < d.forms.length; k++ ){
		// pruefen ob Elemenete im aktuellen Formular vorhanden sind	
		x = d.forms[k].elements
		nCount = d.forms[k].elements.length
		if( nCount > 0 ) {
			// durch alle Elemente des aktuellen Formulars iterieren
			for ( i = 0  ; i <= nCount - 1; i++ ){				
				nArgsExist = 0			
				if ((oObj.name == x[i].name) || ( x[i].name =='SessionID')  ){
				 	nArgsExist = 1
				}		
				if (nArgsExist == 0) {						
				    if (x[i].type == 'checkbox') {
						x[i].checked = false
					}
					else {
						x[i].value = ''
					}	
				}				
			}							
		}	
	}				
}

// ----------------------------------------------------------------------------------------------
// ulfr, 19.07.2005
// Alle Komponenten im angegebnene Formular leeren
// ----------------------------------------------------------------------------------------------

function onEvenResetElements(frm) 
{  
	var i,nCount		
	var x,d = document
	
	// frmSubunternehmer
	if ( frm == '') frm = '#'

	// pruefen ob Elemenete im aktuellen Formular vorhanden sind	
	 x = d.forms[frm].elements	 
	 nCount = x.length
	
	
	if( nCount > 0 ) {
		// durch alle Elemente des aktuellen Formulars iterieren
		for ( i = 0  ; i <= nCount - 1; i++ ){				
		   	if (x[i].type == 'checkbox') {
				x[i].checked = false
			}
			else {
				x[i].value = ''
			}						
		}							
	}	
}

// ----------------------------------------------------------------------------------------------
// ulfr, 19.07.2005
// Confirmation box anzeigen
// ----------------------------------------------------------------------------------------------

function bConfirmMsg(sConfirmMsg)
{
    // Confirmation is not required in the configuration file
    // or browser is Opera (crappy js implementation)
    if (sConfirmMsg == '' || typeof(window.opera) != 'undefined') {
        return true;
    }

    var bIsConfirmed = confirm(sConfirmMsg);
  
    return bIsConfirmed;
} 

function bAlertMsg(sAlertMsg)
{

	alert(sAlertMsg)
	return false;
} 

// ----------------------------------------------------------------------------------------------
// ulfr, 29.08.2005
// Tasteneingaben zaehlen
// Noch: <INPUT readOnly nMaxLength=4 size=3 name=Anzahl> Zeichen
// oder
// Noch: <span id="Anzahl">150</span> Zeichen
// <TEXTAREA onkeydown=onEvenCheckLen(this,150,'Anzahl') onkeyup=onEvenCheckLen(this,150,'Anzahl') onfocus=onEvenCheckLen(this,150,'Anzahl') rows=5 wrap=VIRTUAL cols=35 onchange=onEvenCheckLen(this,150,'Anzahl')></TEXTAREA></FORM>
// ----------------------------------------------------------------------------------------------

function onEvenCheckLen(oObj,nMaxLength,sElement)
{

	// die maximale Zeichenlänge
	if ( nMaxLength == '') nMaxLength = "0"; 

	nStrLen=oObj.value.length;

	if (nStrLen==1&&oObj.value.substring(0,1)==" ") {
		oObj.value=""; 
		nStrLen=0;
	}
	if (nStrLen>nMaxLength ) {
		oObj.value=oObj.value.substring(0,nMaxLength);
		CharsLeft=0;
	}else {
		CharsLeft=nMaxLength-nStrLen;
	}
	
	// Ausgabefeld
	if (sElement != '') {
		// document.getsElementsByName(sElement)[0].value=CharsLeft;
		if (document.getElementById(sElement).type == 'text') {
			 document.getElementById(sElement).value=CharsLeft;		
		} else {
			document.getElementById(sElement).innerHTML=CharsLeft;
		}
	}	
}

// ----------------------------------------------------------------------------------------------
// Sortierung Tabellengrid
// ----------------------------------------------------------------------------------------------

function SetOrderFields(sOrderFields) 
{
	document.getElementsByName("OrderFields")[0].value = sOrderFields
}


// ----------------------------------------------------------------------------------------------
// Valentin Sauer 03.08.2007
// Klappt das CSS-JavaScript Dropdownfeld auf und zu
// Benötigt Prototype
// Wird verwendet in MitgliederAdminBilder.asp
// Input:
// dropdown_parent: Id des ParentDivs
// dropdown_container: Der Div-Container der aus- und eingeklappt werden soll
// -------

function dropdown_expand(dropdown_parent, dropdown_container)
{
dropdown_position = getPosition($(dropdown_parent));
$(dropdown_container).style.left = dropdown_position.x + "px";
$(dropdown_container).style.top = dropdown_position.y + 23 + "px";

if($(dropdown_container).style.display == 'block')
{ $(dropdown_container).style.display = 'none';}
else
{$(dropdown_container).style.display = 'block';}
}

// ----------------------------------------------------------------------------------------------
// Valentin Sauer 03.08.2007
// Wenn eine Checkbox im DropDown-Feld gecheckt wird, wird automatisch das
// "wird verwendet" Feld auch mitgecheckt.
// ----------------------------------------------------------------------------------------------
//Idee: mit Array die unterchilds übergeben

function dropdown_selectparent(dropdown_parent, aUsage)
{
	var count_checked = 0;
	for (var i = 0; i < aUsage.length; i++) 
	{
		dropdown_child_name = "chkUsage_" + dropdown_parent + "_" + aUsage[i];
		if($(dropdown_child_name).checked) 
			{ 
			count_checked++; 
			}
	}
	
	dropdown_parent_name = "chkUsage_" + dropdown_parent + "_parent";

	if(count_checked > 0)
	{ 
		$(dropdown_parent_name).checked = true;
	}
	if(count_checked==0) 
	{ 
		$(dropdown_parent_name).checked = false;
	}
}

// ----------------------------------------------------------------------------------------------
// Valentin Sauer 03.08.2007
// Die Funktion erfasst die reale Position des Elements im Browser-Fester,
// auch wenn die position NICHT 'absolute' ist.
// ----------------------------------------------------------------------------------------------


function getPosition(element)
/* der Aufruf dieser Funktion ermittelt die absoluten Koordinaten
   des Objekts element */
{
  var elem=element,tagname="",x=0,y=0;
  
/* solange elem ein Objekt ist und die Eigenschaft offsetTop enthaelt
   wird diese Schleife fuer das Element und all seine Offset-Eltern ausgefuehrt */
   
  while ((typeof(elem)=="object")&&(typeof(elem.tagName)!="undefined"))
  {
    y+=elem.offsetTop;     /* Offset des jeweiligen Elements addieren */
    x+=elem.offsetLeft;    /* Offset des jeweiligen Elements addieren */
    tagname=elem.tagName.toUpperCase(); /* tag-Name ermitteln, Grossbuchstaben */

/* wenn beim Body-tag angekommen elem fuer Abbruch auf 0 setzen */
    if (tagname=="BODY" || tagname=="HTML")
      elem=0;

/* wenn elem ein Objekt ist und offsetParent enthaelt
   Offset-Elternelement ermitteln */
    if (typeof(elem)=="object")
      if (typeof(elem.offsetParent)=="object")
        elem=elem.offsetParent;
  }

/* Objekt mit x und y zurueckgeben */
  position=new Object();
  position.x=x;
  position.y=y;
  return position;
}


// ----------------------------------------------------------------------------------------------
// Valentin Sauer 03.08.2007
// Checkt ob ein String nur aus Zahlen besteht....
// ----------------------------------------------------------------------------------------------

function IsNumeric(strString)
   //  check for valid numeric strings	
   {
   var strValidChars = "0123456789.-";
   var strChar;
   var blnResult = true;

   if (strString.length == 0) return false;

   //  test strString consists of valid characters listed above
   for (i = 0; i < strString.length && blnResult == true; i++)
      {
      strChar = strString.charAt(i);
      if (strValidChars.indexOf(strChar) == -1)
         {
         blnResult = false;
         }
      }
   return blnResult;
   }
   

// ----------------------------------------------------------------------------------------------
// ulfr 25.09.07
// Checkt ob ein String nur aus Zahlen besteht....
// ----------------------------------------------------------------------------------------------

 function onEvenEmptyCombo(sElement) {
	var x = document.getElementsByName(sElement)[0]
 	// var x=document.getElementById(sElementID)
	while (x.length > 0 ) {	 
		 x.remove(0);
	}	 		
}		

// ----------------------------------------------------------------------------------------------
// ulfr 03.12.07
// Checkbox oder Radiobox 
// ----------------------------------------------------------------------------------------------

function onEvenCheckedVisible(oObj,sElementID) {	
	if ((oObj.type == 'checkbox') || (oObj.type == 'radio')) {		
		if (oObj.checked == false){			
			document.getElementById(sElementID).style.display = 'none';
		}
		else {
			document.getElementById(sElementID).style.display = 'block';
		}
	}
}



// ----------------------------------------------------------------------------------------------
// Tooltips
// ----------------------------------------------------------------------------------------------

wmtt = null;
document.onmousemove = updateWMTT;
function updateWMTT(e) {
    if (wmtt != null) {
   
        x = (document.all) ? window.event.x + wmtt.offsetParent.scrollLeft : e.pageX;
        y = (document.all) ? window.event.y + wmtt.offsetParent.scrollTop : e.pageY;
        wmtt.style.left = (x + 20) + "px";
        wmtt.style.top = (y + 20) + "px";
    }
}
function showWMTT(id) {
    wmtt = document.getElementById(id);
    wmtt.style.display = "block"
}
function hideWMTT() {
    wmtt.style.display = "none";
}

// ---------------------------
// Martanalyse
// ---------------------------

WMTTGP = null;
document.onmousemove = updateWMTTGP;
function updateWMTTGP(e) {
    if (WMTTGP != null) {
/*
        x =window.event.x + WMTTGP.offsetParent.scrollLeft;
        y =window.event.y + WMTTGP.offsetParent.scrollTop ;
        WMTTGP.style.left = (x + 20) + "px";
        WMTTGP.style.top = (y + 20) + "px";

*/

    }
}
function showWMTTGP(id) {
    WMTTGP = document.getElementById(id);
    WMTTGP.style.display = "block"
}
function hideWMTTGP() {
    WMTTGP.style.display = "none";
}


//----------------------------------------------------------
// rom 12.12.11
// Ajax-function zum auf-/zuklappen von Menüabschnitten
//----------------------------------------------------------

function change_menu_display(id_session, id_container, id_button, col_num, chk_menu_stat_only) {

var xmlhttp;

var clsMenuHidden = 'menu_hidden';
var clsMenuVisible = 'menu_visible';
var clsButtonHide = 'button_hide';
var clsButtonShow = 'button_show';
var clsButtonPending = 'button_pending';

var objContainer = document.getElementById(id_container);
var objButton = document.getElementById(id_button);

var clsContainer;
var clsButton;

objButton.className = clsButtonPending;

	if (window.XMLHttpRequest) { // IE7+, Firefox, Safari, Chrome, Opera
		xmlhttp = new XMLHttpRequest();
	}
	else { // IE6, IE5
		xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
	}
	
	xmlhttp.onreadystatechange = function() {
		if (xmlhttp.readyState === 4 && xmlhttp.status === 200) {
			
			if (Boolean(parseInt(xmlhttp.responseText))) {
				clsContainer = clsMenuVisible;
				clsButton = clsButtonHide;
			}
			else {
				clsContainer = clsMenuHidden;
				clsButton = clsButtonShow;
			}
			
			objContainer.className = clsContainer;
			objButton.className = clsButton;
		}
		else {
			objContainer.className = clsMenuVisible;
			objButton.className = clsButtonHide;
		}
	}
	
	xmlhttp.open('GET', '../ajax/ajax_serviceAttr.asp?sess=' + id_session + '&col=' + col_num + '&chk=' + chk_menu_stat_only + "&ie_error_fix=" + new Date().getTime(), true);
	xmlhttp.send();

}


