function sleep(ms){
  var zeit=(new Date()).getTime();
  var stoppZeit=zeit+ms;
  while((new Date()).getTime()<stoppZeit){};
}

/*
String constant for one of the support event categories:
HTMLEvents, KeyEvents (supported by Netscape 6, but not specified until DOM Level 3), MouseEvents, MutationEvents, or UIEvents.
*/
function createEvent(eventName) {
  if(eventName=="") eventName="Events";
  if(document.createEvent) {
    var evt = document.createEvent(eventName);
  }
  else if(document.createEventObject) {
    var evt = document.createEventObject();
  }
  return evt;
}

function raiseEvent (eventType, elementID) {
  var o = document.getElementById(elementID);

  if (document.createEvent) {
    var evt = document.createEvent("Events");
    evt.initEvent(eventType, true, true);
    o.dispatchEvent(evt);
  }
  else if (document.createEventObject) {
    var evt = document.createEventObject();
    o.fireEvent('on' + eventType, evt);
  }
  o = null;
}

function resizeMiddle(element,heightfix) {
  var innerHeight = window.innerHeight || (window.document.documentElement.clientHeight || window.document.body.clientHeight);
  var newHeight = innerHeight-heightfix;

  browserVer = navigator.appVersion;
  if(browserVer.indexOf("MSIE 6.0") != -1) {
    element.style.height = newHeight+"px";
  }
  else {
    element.style.minHeight = newHeight+"px";
  }
}

function mergeAlternateString(s1,s2) {
 num=s1.length;
 text="";
 for(i=0;i<num;i++) {
  if(typeof s1.charAt(i)!='undefined') text+=s1.charAt(i);
  if(typeof s2.charAt(i)!='undefined') text+=s2.charAt(i);
 }
 return text;
}

function inArray(array,value) {
 for(i=0; i<array.length; ++i) if(array[i]==value) return true;
 return false;
}

function str_replace(search, replace, subject) {
    return subject.split(search).join(replace);
}

function stripslashes(str) {
  return str.replace(/\\/g, '');
}

function replaceQuotes(str,mode) {
  if(typeof(mode)==null || typeof(mode)=="undefined" || mode==1) {
    str=str.replace(/'/g, "&#039;");
  }

  if(typeof(mode)==null || typeof(mode)=="undefined" || mode==2) {
    str=str.replace(/"/g, "&quot;"); //"&#034;"
  }

  return str;
}

function copyDatum(von,nach,uhrzeit)  {
  document.getElementById(nach+'_tag').value=document.getElementById(von+'_tag').value;
  document.getElementById(nach+'_monat').value=document.getElementById(von+'_monat').value;
  document.getElementById(nach+'_jahr').value=document.getElementById(von+'_jahr').value;
  if(uhrzeit==1) {
    document.getElementById(nach+'_stunde').value=document.getElementById(von+'_stunde').value;
    document.getElementById(nach+'_minute').value=document.getElementById(von+'_minute').value;
  }
}

function textCounter(field, maxlimit, countfield) {
  if(document.getElementById(field).value.length > maxlimit) {
    document.getElementById(field).value = document.getElementById(field).value.substring(0, maxlimit);
  }

  if(typeof(countfield)!=null && typeof(countfield)!="undefined" && countfield!="") {
    remaining=maxlimit-document.getElementById(field).value.length;
    document.getElementById(countfield).innerHTML=remaining;
  }
}

function generatePW(length, seeds, capital) {
  if(typeof(length) == "undefined") length=8;
  if(typeof(seeds) == "undefined") seeds='alphanum';
  if(typeof(capital) == "undefined") capital=2;

  // Possible seeds
  //var alpha              ='abcdefghijklmnopqrstuvwqyz';
  //if(capital==2) var alpha+='ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  //var numeric            = '0123456789';

  //bereinigt um Verwechselungen auszuschließen
  var hexidec   ='0123456789abcdef';
  var alpha     ='abcdefghjkmnpqrstuvwqyz';

  if(capital==1) {
    var alpha   ='ABCDEFGHJKMNPQRSTUVWXYZ';
    var hexidec ='0123456789ABCDEF';
  }
  if(capital==2) {
    alpha  +='ABCDEFGHJKMNPQRSTUVWXYZ';
    hexidec+='ABCDEF';
  }

  var numeric  = '23456789';
  var alphanum = alpha+numeric;

  var charSet = "";
  if(seeds=="alpha") charSet = alpha;
  if(seeds=="numeric") charSet = numeric;
  if(seeds=="alphanum") charSet = alphanum;
  if(seeds=="hexidec") charSet = hexidec;

  var rc = "";
  var randomNum = 0;
  var ubound = 0;
  var lbound = 0;
  for (var idx = 0; idx < length; ++idx) {
    randomNum = (Math.floor(Math.random() * (charSet.length - 0)) + 0);
    rc += charSet.charAt(randomNum);
  }
  return rc;
}

function getElementsByClassName1( myName ) {
  var tags = ["tr"];
  var result = [];
  var searchExpression = new RegExp( "\\b" + myName + "\\b" );
  for (var i = 0; i < tags.length; i++ ) {
    var objects = document.getElementsByTagName( tags[ i ] );
    for (var j = 0; j < objects.length; j++ ) {
      if ( objects[ j ].className.match( searchExpression ) )
        result.push( objects[ j ] );
    }
  }
  return result;
}


function getElementsByClassName(className, tag, elm){
  var testClass = new RegExp("(^|\\\\s)" + className + "(\\\\s|$)");
  var tag = tag || "*";
  var elm = elm || document;
  var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
  var returnElements = [];
  var current;
  var length = elements.length;
  for(var i=0; i<length; i++){
    current = elements[i];
    if(testClass.test(current.className)){
      returnElements.push(current);
    }
  }
  return returnElements;
}

function checkRadio(field){
  for (var i=0; i<field.length; i++) {
    if(field[i].checked==true) return field[i].value;
  }
  return false
}

function AutoTab(check,input) {
  if(check.value.length == check.getAttribute("maxlength"))
  input.focus();
}

/* Setzt Daten aus dem Kalender in das Formular */
function sendDay(date,field,form,notime) {
  if(typeof(form)!=null && typeof(form)!="undefined" && form!="" && form!="forms[0]") {
    if(notime!=1) {
      eval("document.forms."+form+"."+field+"_minute.value='"+date.substr(10,2)+"'");
      eval("document.forms."+form+"."+field+"_stunde.value='"+date.substr(8,2)+"'");
    }
    eval("document.forms."+form+"."+field+"_tag.value='"+date.substr(6,2)+"'");
    eval("document.forms."+form+"."+field+"_monat.value='"+date.substr(4,2)+"'");
    eval("document.forms."+form+"."+field+"_jahr.value='"+date.substr(0,4)+"'");
  }
  else {
    if(notime!=1) {
     eval("document.forms[0]."+field+"_minute.value='"+date.substr(10,2)+"'");
     eval("document.forms[0]."+field+"_stunde.value='"+date.substr(8,2)+"'");
    }
    eval("document.forms[0]."+field+"_tag.value='"+date.substr(6,2)+"'");
    eval("document.forms[0]."+field+"_monat.value='"+date.substr(4,2)+"'");
    eval("document.forms[0]."+field+"_jahr.value='"+date.substr(0,4)+"'");
  }
}

function getMouseXY(e) {
   x = (document.all) ? window.event.x + document.body.scrollLeft : e.pageX;
   y = (document.all) ? window.event.y + document.body.scrollTop  : e.pageY;
}

function toggleDisplay(elm,img,pathclose,pathopen,forcedisplay) {
  if(typeof(forcedisplay) != "undefined") {
    if(forcedisplay==1) {
      document.getElementById(elm).style.display="";
      if(typeof(img) != "undefined") {
      document.getElementById(img).src = pathopen;
      document.getElementById(img).title = "zuklappen";
      }
    }
    else {
      document.getElementById(elm).style.display = "none";
      if(typeof(img) != "undefined") {
      document.getElementById(img).src = pathclose;
      document.getElementById(img).title = "aufklappen";
      }
    }
  }//if(typeof(forcedisplay) != "undefined")
  else {
    if(document.getElementById(elm).style.display == "") {
      document.getElementById(elm).style.display = "none";
      if(typeof(img) != "undefined") {
      document.getElementById(img).src = pathclose;
      document.getElementById(img).title = "aufklappen";
      }
    }
    else {
      document.getElementById(elm).style.display="";
      if(typeof(img) != "undefined") {
      document.getElementById(img).src = pathopen;
      document.getElementById(img).title = "zuklappen";
      }
    }
  }
}

function showAndHide(showElementId,hideElementId) {
  document.getElementById(showElementId).style.display = "inline";
  document.getElementById(hideElementId).style.display = "none";
}

function autoresize_iframe_height(frame) {
  if(window.frames[frame] && window.frames[frame].document) {
    window.frames[frame].window.scroll(0,0);
    var body = window.frames[frame].document.body;
    if(body) {
      height=(body.scrollHeight || body.offsetHeight)+10;
      document.getElementById(frame).style.height = height + 'px';
    }
  }
}

function openFrame(e,divid,frameid,src,param,top,left) {
  getMouseXY(e);

  if(typeof(top) != "undefined") y=top;
  else y=y-40;
  if(typeof(left) != "undefined") x=left;
  else x=50;

  if(left=='mitte') {
    //offsetScrollbar=20;
    offsetScrollbar=0;
    width = document.body.offsetWidth-offsetScrollbar;
    x=(width/2)-100; //-Framewidth/2
  }
  if(top=='mitte') {
    height = document.body.offsetHeight;
    y=height/2;
  }

  document.getElementById(divid).style.display="";
  document.getElementById(divid).style.position="absolute";
  document.getElementById(divid).style.top=y;
  document.getElementById(divid).style.left=x;
  document.getElementById(frameid).src=src+"?divid="+divid+"&"+param;
}

function aufzu(id,gruppentyp) {
 if(gruppentyp>0) gruppentyp="0";
 else gruppentyp="";
 if(document.getElementById(id).style.display=="none") {
  document.getElementById(id).style.display="";
  if(document.getElementById("folder"+id).src.match(/folder/)) document.getElementById("folder"+id).src="../bilder/content/tree/folder_open"+gruppentyp+".gif";
  if(document.getElementById("plus"+id).src.match(/_ende/)) document.getElementById("plus"+id).src="../bilder/content/tree/minus_ende.gif";
  else document.getElementById("plus"+id).src="../bilder/content/tree/minus.gif";
 } else {
  document.getElementById(id).style.display="none";
 if(document.getElementById("folder"+id).src.match(/folder/)) document.getElementById("folder"+id).src="../bilder/content/tree/folder"+gruppentyp+".gif";
 if(document.getElementById("plus"+id).src.match(/_ende/)) document.getElementById("plus"+id).src="../bilder/content/tree/plus_ende.gif";
 else document.getElementById("plus"+id).src="../bilder/content/tree/plus.gif";
 }
 //document.location.hash="#"+id; auskommentiert, führt zu üblen Sprungeffekten
}

/*
function showMenuO(event,id) {
 if(event.button==2) {
  offset=window.pageYOffset;
  if(!offset) offset=document.body.scrollTop;
  document.getElementById('contextMenuD').style.visibility='hidden';
  document.getElementById('contextMenuO').style.left=event.clientX;
  document.getElementById('contextMenuO').style.top=event.clientY+offset;
  document.getElementById('contextMenuO').style.visibility="visible";
  document.getElementById('contextMenuVal').value=id;
  document.getElementById('contextMenuTyp').value="O";
 } else return true;
}

function showMenuD(event,id) {
 if(event.button==2) {
  offset=window.pageYOffset;
  if(!offset) offset=document.body.scrollTop;
  document.getElementById('contextMenuO').style.visibility='hidden';
  document.getElementById('contextMenuD').style.left=event.clientX;
  document.getElementById('contextMenuD').style.top=event.clientY+offset;
  document.getElementById('contextMenuD').style.visibility="visible";
  document.getElementById('contextMenuVal').value=id;
  document.getElementById('contextMenuTyp').value="D";
 } else return true;
}
*/

function info(typ,id,parent,struktur,medium) {
  var objektinfo=window.open("../inhalt/info.php?typ="+typ+"&medium="+medium+"&id="+id+"&parent="+parent+"&struktur="+struktur,"info","width=380,height=350,locationbar=no,resizable=no,scrollbars=yes,dependent=no,statusbar=no");
  objektinfo.focus();
}

function zeige(a,verein,reiter) {
 if(typeof(reiter)=="undefined") var reiter="info";
 if(verein>0) {
  var objektinfo=window.open("../inhalt/locals_details.php?id="+a+"&site="+reiter,"detail"+a,"width="+(468+16)+",height=400,locationbar=no,resizable=yes,dependent=yes,scrollbars=yes,statusbar=no"); }
 else var objektinfo=window.open("../inhalt/locals_details.php?id="+a+"&site="+reiter,"detail"+a,"width="+(468+16)+",height=400,locationbar=no,resizable=yes,dependent=yes,scrollbars=yes,statusbar=no");
 objektinfo.focus();
}

function open_navigator(kommune,id) {
  var objektinfo=window.open('http://www.landkreis-verden-navigator.de/poi-'+id+'-'+kommune+'.html');
objektinfo.focus();
}

function weiterempfehlen() {
  window.open('../inhalt/weiterempfehlen.php','weiterempfehlen','width=550,height=480,locationbar=no,resizable=no,scrollbars=no,dependent=no,statusbar=no');
}

/*Javascript für neu aufgebaute Managerseiten*/
function SlideShowHide(hideElement, plusMinusImg) {
  if($(hideElement).style.display == "none") {
    Effect.SlideDown(hideElement, { duration: 0.3 })
    if(plusMinusImg!="") $(plusMinusImg).src = "../content_bilder/neu/minus.gif";
  }
  else {
    Effect.SlideUp(hideElement, { duration: 0.3 })
    if(plusMinusImg!="") $(plusMinusImg).src = "../content_bilder/neu/plus.gif";
  }
}

function allesAufklappen(field,anzahl,obj){
  if(obj.checked) {
    for(var z=0;z<anzahl;z++) {
      var name=field+""+z;
      var bild="plusMinusImg"+z;
      document.getElementById(name).style.display = 'none';
      document.getElementById(bild).src = "../content_bilder/neu/plus.gif";
    }
  }
  else {
    for(var z=0;z<anzahl;z++) {
      var name=field+""+z;
      var bild="plusMinusImg"+z;
      document.getElementById(name).style.display = '';
      document.getElementById(bild).src = "../content_bilder/neu/minus.gif";
    }
  }
}

function ShowAll (field,anzahl) {
  for(var z=0;z<anzahl;z++) {
    var name=field+""+z;
    var bild="plusMinusImg"+z;
    if (document.getElementById(name)) {
      document.getElementById(name).style.display = '';
      document.getElementById(bild).src = "../content_bilder/neu/minus.gif";
    }
  }
}

function HideAll (field,anzahl) {
  for(var z=0;z<anzahl;z++) {
    var name=field+""+z;
    var bild="plusMinusImg"+z;
    if (document.getElementById(name)) {
      document.getElementById(name).style.display = 'none';
      document.getElementById(bild).src = "../content_bilder/neu/plus.gif";
    }
  }
}