		/***********************************
		*	  						       *
		*   neues javascript fuer anull    *
		*							       *
		***********************************/

/*
* actualisiert die fenster höhe
*/
function Fensterhoehe ()
{
	if (window.innerHeight){
		var h = window.innerHeight;
	}
	else if (document.body && document.body.offsetHeight){
		var h = document.body.offsetHeight;
	}
	else{
		var h = 0;
	}
	
	if(document.getElementById("div5"))
		document.getElementById("div5").style.height = (h-150);
	if(document.getElementById("div6"))
		document.getElementById("div6").style.height = (h-150);
}
aktiv = window.setInterval("Fensterhoehe()", 200);

function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}

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_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_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 orderGoods(m7_id,pos,width,height)
{
	var point = document.formular;
	var menge = point.elements["m7_order_stk_"+pos].value;
	var width2=450;
	var height2=300;
	
	if(width!=0 && height!=0){
		height2=height2+0.3*height;
		widht2=width2+width;
	}
	var url = "admin/modul/modul7/orderGoods.php?subcontroll=orderGoods&m7_id="+m7_id+"&menge="+menge;
	

	
	var f1 = window.open(url,'order','width='+width2+',height='+height2+',scrollbars=yes,top=0,left=0, resizable=yes');
	f1.focus();	
}

function deleteProdukt(url,msg)
{
	if(confirm(msg)){
		location.href=url;
	}
}

function checkBestellen(text,design)
{
	var msg 	= text;
	var error 	= false;
	var point 	= document.formular;
	var pfad	= "";
	
	if(point.m7_order_kundennr.value == ""){
		error = true;
		document.images["kundennr"].src = pfad+"_style/"+design+"/_images/achtung.jpg";
	}
	else{
		document.images["kundennr"].src = pfad+"_style/"+design+"/_images/spacer.gif";
	}
	if(point.m7_order_firmenname.value == ""){
		error = true;
		document.images["firmenname"].src = pfad+"_style/"+design+"/_images/achtung.jpg";
	}
	else{
		document.images["firmenname"].src = pfad+"_style/"+design+"/_images/spacer.gif";
	}
	
	if(point.m7_order_nachname.value == ""){
		error = true;
		document.images["nachname"].src = pfad+"_style/"+design+"/_images/achtung.jpg";
	}
	else{
		document.images["nachname"].src = pfad+"_style/"+design+"/_images/spacer.gif";
	}
	
	if(point.m7_order_vorname.value == ""){
		error = true;
		document.images["vorname"].src = pfad+"_style/"+design+"/_images/achtung.jpg";
	}
	else{
		document.images["vorname"].src = pfad+"_style/"+design+"/_images/spacer.gif";
	}
	
	if(point.m7_order_strasse.value == ""){
		error = true;
		document.images["strasse"].src = pfad+"_style/"+design+"/_images/achtung.jpg";
	}
	else{
		document.images["strasse"].src = pfad+"_style/"+design+"/_images/spacer.gif";
	}
	
	if(point.m7_order_plz.value == ""){
		error = true;
		document.images["plz"].src = pfad+"_style/"+design+"/_images/achtung.jpg";
	}
	else{
		document.images["plz"].src = pfad+"_style/"+design+"/_images/spacer.gif";
	}
	
	if(point.m7_order_ort.value == ""){
		error = true;
		document.images["ort"].src = pfad+"_style/"+design+"/_images/achtung.jpg";
	}
	else{
		document.images["ort"].src = pfad+"_style/"+design+"/_images/spacer.gif";
	}
	if(point.m7_order_telefon.value == ""){
		error = true;
		document.images["telefon"].src = pfad+"_style/"+design+"/_images/achtung.jpg";
	}
	else{
		document.images["telefon"].src = pfad+"_style/"+design+"/_images/spacer.gif";
	}
	if(!_checkMail(point.m7_order_email.value) ){
		error = true;
		document.images["email"].src = pfad+"_style/"+design+"/_images/achtung.jpg";
	}
	else{
		document.images["email"].src = pfad+"_style/"+design+"/_images/spacer.gif";
	}
	
	
	if(error)
		alert(msg);
			
	if(!error)	
		point.submit();	
	
}
function checkRegister(text,design)
{
	var msg 		= text;
	var error 	= false;
	var point 	= document.formular;
	var pfad		= "../../../";
	
/*	if(point.m1_v_kundennr.value == ""){
		error = true;
		document.images["kundennr"].src = pfad+"_style/"+design+"/_images/achtung.jpg";
	}
	else{
		document.images["kundennr"].src = pfad+"_style/"+design+"/_images/spacer.gif";
	}
	if(point.m1_v_firmenname.value == ""){
		error = true;
		document.images["firmenname"].src = pfad+"_style/"+design+"/_images/achtung.jpg";
	}
	else{
		document.images["firmenname"].src = pfad+"_style/"+design+"/_images/spacer.gif";
	}
*/	
	if(point.m1_v_nachname.value == ""){
		error = true;
		document.images["nachname"].src = pfad+"_style/"+design+"/_images/achtung.jpg";
	}
	else{
		document.images["nachname"].src = pfad+"_style/"+design+"/_images/spacer.gif";
	}
	
	if(point.m1_v_vorname.value == ""){
		error = true;
		document.images["vorname"].src = pfad+"_style/"+design+"/_images/achtung.jpg";
	}
	else{
		document.images["vorname"].src = pfad+"_style/"+design+"/_images/spacer.gif";
	}
	
	if(point.m1_v_strasse.value == ""){
		error = true;
		document.images["strasse"].src = pfad+"_style/"+design+"/_images/achtung.jpg";
	}
	else{
		document.images["strasse"].src = pfad+"_style/"+design+"/_images/spacer.gif";
	}
	
	if(point.m1_v_plz.value == ""){
		error = true;
		document.images["plz"].src = pfad+"_style/"+design+"/_images/achtung.jpg";
	}
	else{
		document.images["plz"].src = pfad+"_style/"+design+"/_images/spacer.gif";
	}
	
	if(point.m1_v_ort.value == ""){
		error = true;
		document.images["ort"].src = pfad+"_style/"+design+"/_images/achtung.jpg";
	}
	else{
		document.images["ort"].src = pfad+"_style/"+design+"/_images/spacer.gif";
	}
	if(point.m1_v_telefon.value == ""){
		error = true;
		document.images["telefon"].src = pfad+"_style/"+design+"/_images/achtung.jpg";
	}
	else{
		document.images["telefon"].src = pfad+"_style/"+design+"/_images/spacer.gif";
	}
	if(!_checkMail(point.m1_v_email.value) ){
		error = true;
		document.images["email"].src = pfad+"_style/"+design+"/_images/achtung.jpg";
	}
	else{
		document.images["email"].src = pfad+"_style/"+design+"/_images/spacer.gif";
	}
	
	
	if(error)
		alert(msg);
			
	if(!error)	
		return true;	
	else
		return false;
}

function register2event(m1,titel,pathcorr)
{
	var url = pathcorr+"admin/modul/modul1/registerEvent.php?subcontroll=register2event&modul1_id="+m1+"&titel="+titel;
	var f1 = window.open(url,'register2event','width=730,height=670,scrollbars=yes,top=0,left=0, resizable=yes');
	f1.focus();	
}

function go2Page()
{
	var point=document.quickfinder.finder;
	var value=point.options[point.selectedIndex].value;
	
	location.href=value;	
}

function _checkMail(email) 
{
/*
	var reg = /[\.a-z1-9]+@+[\-a-z]+\.{1,3}/i;

	if ( reg.exec(email) ) 
		return true;
	else
		return false;
	*/
	return _checkMail2(s=email);
		
}


function _checkMail2(s)
{
	 var a = false;
	 var res = false;
	 
	 if(typeof(RegExp) == 'function'){
	  var b = new RegExp('abc');
	  if(b.test('abc') == true){a = true;}
	  }
	
	 if(a == true){
	  reg = new RegExp('^([a-zA-Z0-9\\-\\.\\_]+)'+
	                   '(\\@)([a-zA-Z0-9\\-\\.]+)'+
	                   '(\\.)([a-zA-Z]{2,4})$');
	  res = (reg.test(s));
	 }
	 else{
	  res = (s.search('@') >= 1 &&
	         s.lastIndexOf('.') > s.search('@') &&
	         s.lastIndexOf('.') >= s.length-5)
	 }
	 return(res);
}
 
 
function checkDownload(text,design)
{
	var msg 	= text;
	var error 	= false;
	var point 	= document.formular;
	var pfad	= "../../../";
	
	var vorname		= point.vorname2.value;
	var nachname	= point.nachname2.value;
	var email 		= point.email2.value;
	var telefon 	= point.telefon2.value;
	//alert(document.formular.vorname2.value);
	
	if(vorname == ""){
		error = true;
	}
	if(nachname == ""){
		error = true;
	}
	if(!_checkMail(email) ){
		error = true;
	}
	if(telefon == ""){
		error = true;
	}
	
	if(error)
		alert(msg);
			
	if(!error)	
		return true;	
	else
		return false;
}

/**
function go2form(link_id,seite_id)
{
	var url = "admin/modul/modul1/go2download.php?subcontroll=go2form&link_id="+link_id+"&seite_id="+seite_id;
	var f1 = window.open(url,'form','width=700,height=600,scrollbars=yes,top=0,left=0, resizable=yes');
	f1.focus();
}
*/

function go2form(link_bezeichnung,link_url,seite_id,link_id)
{
	var url = "admin/modul/modul1/go2download.php?subcontroll=go2form&link_bezeichnung="+link_bezeichnung+"&link_url="+link_url+"&seite_id="+seite_id+"&link_id="+link_id;
	var f1 = window.open(url,'form','width=700,height=600,scrollbars=yes,top=0,left=0, resizable=yes');
	f1.focus();
}

var star_1 = "stern_blau.jpg";
var star_2 = "stern_rot.jpg";

var safeActImage = "";
var safeOldImage = "";



/**
*	
*	aendert Stern bei mousOver bei Hauptnavigation alert("ich funke");
*
**/	
function changeStar(modus,point,design)
{
	if(point != safeActImage)
	{
		if(modus == "1")
			document.images[point].src = "_style/"+design+"/_menue/_main/"+star_1;
		else
			document.images[point].src = "_style/"+design+"/_menue/_main/"+star_2;
	}
}

/**
*
* aendert Supmenue
*
**/
function showSubnavigation(node_id)
{
	// setzte subnavigation
	var url = "supmenue.php?node_id="+node_id;
	parent.frames["supmenue"].location.href=url;	
}

/**
*
* aendert Mainmenue Hintergrundbild
*
**/
function change_bg_img(pfad){
	var savepfad = "";
	
	if(pfad != ""){
		if(prad != savepfad){
			document.images["menueimg"].src = pfad;
			savepfad = pfad;
		}
	}
}

/**
*
* !!!		>> modul1 => news <<		!!!
*
*	aendert bild url
*
**/
function changeImagesrc(ziel,bild)
{
	document.getElementById(ziel).src = bild;
}

/**
*
* !!!		>> modul3 => feedback <<		!!!
*
* controliert feedbackformular und sendet ab.
*
**/
function checkFeedback(texte)
{
	var msg = texte;
	
	var point = document.newPage;
	var modul2_header = point.modul2_header.value;
	var modul2_text = point.modul2_text.value;
	var modul2_autor = point.modul2_autor.value;
	var modul2_autor_email = point.modul2_autor_email.value;
	
	var OK = false;
	
	if(modul2_header != "" && modul2_text != "" && modul2_autor != "" && modul2_autor_email != "")
		OK = true;
		
	if(!OK)
		alert(msg);
	else
		document.forms["newPage"].submit();
	
}


function ladeframenach(flash,net) 
{
	if(flash != "ok")
	{
		if(!parent.frmMenu)
			location.href='index.php' + location.search+"&dir=1";			
	}
	
}
		
function memberLogout(seite_id,node_id,texte)
{
	var msg = texte;
	var url = "main.php?admin_controll=Modul4&sub_controll=logout&seite_id="+seite_id+"&node_id="+node_id;
	if(confirm(msg))
		location.href=url;
}

function memberLogin(seite_id)
{
	//geht immer zur registrieren seite der sparche
	var url = "main.php?seite_id="+seite_id;
	parent.frames["main"].location.href=url
}


function changeLanguage(url,flage)
{
	//node_idSub,
	//alert(node_idMain);
	//var url 	= "mainmenue.php?node_id="+node_idMain;
	//var url2 	= "supmenue.php?node_id="+node_idSub+"&newFlag="+flage;

	top.location.href=url+"&newFlag="+flage;
	
}

function checkModul4updateDialer(texte)
{
	var msg = texte;
	var point = document.formular;
	
	var kundennr = point.modul4_kundennr.value;
	var password= point.modul4_passwd.value;
	
	var error = false;
	
	if(kundennr == "")
		error = true;

	if(password == "")
		error = true;
		
	if(error)
		alert(msg);
			
	if(!error)	
		point.submit();
}

function checkModul4updateMember(texte)
{
	var msg = texte;
	var point = document.formular;
	
	var email = point.modul4_email.value;
	var login = point.modul4_login.value;
	var password= point.modul4_passwd.value;
	var error = false;
	
	if(email == "")
		error = true;
	if(login == "")
		error = true;
	if(password == "")
		error = true;
		
	if(error)
		alert(msg);
			
	if(!error)	
		point.submit();
}

function publicReg(seite_id)
{
	//geht immer zur registrieren seite der sparche
	var url = "main.php?seite_id="+seite_id+"&regi=public";
	parent.frames["main"].location.href=url;
}

function checkModul4reg(texte)
{
	var msg = texte;
	var point = document.formular;
	
	var email 		= point.modul4_email.value;
	var login 		= point.modul4_login.value;
	var password		= point.modul4_passwd.value;
	var password2	= point.modul4_passwd2.value;
	
	var error = false;
	
	if(!_checkMail(email))
		error = true;
	if(login == "")
		error = true;
	if(password == "" || password != password2)
		error = true;
	//if(point.modul4_newsletter.checked == false)
	//	error = true;
			
	if(error)
		alert(msg);
			
	if(!error)	
		point.submit();
}

function checkSearch(text)
{
	var point 	= document.formular;
	var sbez 	= point.search_bezeichnung.value;
	var sorder 	= point.search_ordernr.value;
	var soem 	= point.search_oemnr.value;
	
	var error = true;
	
	if(sbez != "") error = false;
	if(sorder != "") error = false;
	if(soem != "") error = false;
	
	if(error)
		alert(text);
		
	if(error)
		return false;
	else
		return true;
		
	
}

function changeMain(url){
	//var url = "main.php?seite_id="+seite_id+"&node_id="+node_id;
	location.href = url;
}

function checkKontaktform(msg)
{
	var error 	= false;
	var point 	= document.formular;

	if(point.m8_email.value == "") error=true;
	else if(!_checkMail(point.m8_email.value)) error=true;
	if(point.m8_betreff.value == "") error=true;
	if(point.m8_nachricht.value == "") error=true;
		
	if(error)
		alert(msg);
	else
		point.submit();
	

}

function sendF_Feedback()
{
	var msg 	= "Bitte ein Thema eingeben!";
	var point 	= document.formular;
	var error 	= false;
	
	if(point.modul8_thema.value == "")
		error = true;
		
	
	if(error)
		alert(msg);
	
	if(!error)
		point.submit();
		
	
}

function deleteThema(modul8_id)
{
	var msg = "Wollen Sie wirklich dieses Thema löschen?";
	var url = "main.php?admin_controll=Modul8&sub_controll=deleteThema&ziel=adminShowPage&modul8_id="+modul8_id;
	
	if(confirm(msg))
		location.href=url;
		
}

function clearFields()
{
	var form=document.forms[0];
	
	form.firma.value="";
	form.partner.value="";
	form.adresse.value="";
	form.plzort.value="";
	form.telefon.value="";
	form.fax.value="";
	form.email.value="";
	form.datum.value="";
	form.msg.value="";
}

function clearBestellFields()
{
	var form=document.forms[0];
	
	form.firma.value="";
	form.partner.value="";
	form.adresse.value="";
	form.plzort.value="";
	form.telefon.value="";
	form.fax.value="";
	form.email.value="";
	form.datum.value="";
	//form.msg.value="";
}

function checkFields(msg)
{
	var form=document.forms[0];
	var error=false;
	
	if(form.firma.value=="") error=true;
	if(form.partner.value=="") error=true;
	if(form.adresse.value=="") error=true;
	if(form.plzort.value=="") error=true;
	if(form.telefon.value=="") error=true;
	if(form.email.value=="") error=true;
	if(form.anforderung.checked==false && form.ruecknahme.checked==false)
		error=true;
	
	if(!error) form.submit();
	else alert(msg);
}

function changeAnforderung(anz)
{
//	var form=document.forms[0];
//	var anz=0;
	
//	with(form.anzAnforderung) anz=options[selectedIndex].value;
	//alert("anz2: "+anz);
	if(anz==0) document.getElementById("cbANF").checked=false;
	else document.getElementById("cbANF").checked=true;
}

function changeRuecknahme(anz)
{
//	var form=document.forms[0];
//	var anz=0;
	
//	with(form.anzRuecknahme) anz=options[selectedIndex].value;
	//alert("anz2: "+anz);
	if(anz==0) document.getElementById("cbRUECK").checked=false;
	else document.getElementById("cbRUECK").checked=true;
}

function checkKontaktFields(msg)
{
	var form=document.forms[0];
	var error=false;
	
	if(form.absender_name.value=="") error=true;
	if(form.absender_email.value=="") error=true;
	if(form.msg.value=="") error=true;
	
	if(error) alert(msg);
	else document.forms[0].submit();
}

/**************
* js fŸr menŸ *
**************/
/*cange css*/
function change_css(css,id)
{
	document.getElementById(id).className = ""+css+"";	
}

/*load page*/
function loadPage(url,target)
{
	
}

function change_src(id,img)
{
	document.getElementById(id).src=img;
}

/**
 * javascript zur erzeugung eines md5-strings
 */


function array(n) {
  for(i=0;i<n;i++) this[i]=0;
  this.length=n;
}



/* Einige grundlegenden Funktionen müssen wegen
 * Javascript Fehlern umgeschrieben werden.
 * Man versuche z.B. 0xffffffff >> 4 zu berechnen..
 * Die nun verwendeten Funktionen sind zwar langsamer als die Originale,
 * aber sie funktionieren.
 */

function integer(n) { return n%(0xffffffff+1); }

function shr(a,b) {
  a=integer(a);
  b=integer(b);
  if (a-0x80000000>=0) {
    a=a%0x80000000;
    a>>=b;
    a+=0x40000000>>(b-1);
  } else
    a>>=b;
  return a;
}

function shl1(a) {
  a=a%0x80000000;
  if (a&0x40000000==0x40000000)
  {
    a-=0x40000000;
    a*=2;
    a+=0x80000000;
  } else
    a*=2;
  return a;
}

function shl(a,b) {
  a=integer(a);
  b=integer(b);
  for (var i=0;i<b;i++) a=shl1(a);
  return a;
}

function and(a,b) {
  a=integer(a);
  b=integer(b);
  var t1=(a-0x80000000);
  var t2=(b-0x80000000);
  if (t1>=0)
    if (t2>=0)
      return ((t1&t2)+0x80000000);
    else
      return (t1&b);
  else
    if (t2>=0)
      return (a&t2);
    else
      return (a&b);
}

function or(a,b) {
  a=integer(a);
  b=integer(b);
  var t1=(a-0x80000000);
  var t2=(b-0x80000000);
  if (t1>=0)
    if (t2>=0)
      return ((t1|t2)+0x80000000);
    else
      return ((t1|b)+0x80000000);
  else
    if (t2>=0)
      return ((a|t2)+0x80000000);
    else
      return (a|b);
}

function xor(a,b) {
  a=integer(a);
  b=integer(b);
  var t1=(a-0x80000000);
  var t2=(b-0x80000000);
  if (t1>=0)
    if (t2>=0)
      return (t1^t2);
    else
      return ((t1^b)+0x80000000);
  else
    if (t2>=0)
      return ((a^t2)+0x80000000);
    else
      return (a^b);
}

function not(a) {
  a=integer(a);
  return (0xffffffff-a);
}

/* Beginn des Algorithmus */

    var state = new array(4);
    var count = new array(2);
        count[0] = 0;
        count[1] = 0;
    var buffer = new array(64);
    var transformBuffer = new array(16);
    var digestBits = new array(16);

    var S11 = 7;
    var S12 = 12;
    var S13 = 17;
    var S14 = 22;
    var S21 = 5;
    var S22 = 9;
    var S23 = 14;
    var S24 = 20;
    var S31 = 4;
    var S32 = 11;
    var S33 = 16;
    var S34 = 23;
    var S41 = 6;
    var S42 = 10;
    var S43 = 15;
    var S44 = 21;

    function F(x,y,z) {
        return or(and(x,y),and(not(x),z));
    }

    function G(x,y,z) {
        return or(and(x,z),and(y,not(z)));
    }

    function H(x,y,z) {
        return xor(xor(x,y),z);
    }

    function I(x,y,z) {
        return xor(y ,or(x , not(z)));
    }

    function rotateLeft(a,n) {
        return or(shl(a, n),(shr(a,(32 - n))));
    }

    function FF(a,b,c,d,x,s,ac) {
        a = a+F(b, c, d) + x + ac;
        a = rotateLeft(a, s);
        a = a+b;
        return a;
    }

    function GG(a,b,c,d,x,s,ac) {
        a = a+G(b, c, d) +x + ac;
        a = rotateLeft(a, s);
        a = a+b;
        return a;
    }

    function HH(a,b,c,d,x,s,ac) {
        a = a+H(b, c, d) + x + ac;
        a = rotateLeft(a, s);
        a = a+b;
        return a;
    }

    function II(a,b,c,d,x,s,ac) {
        a = a+I(b, c, d) + x + ac;
        a = rotateLeft(a, s);
        a = a+b;
        return a;
    }

    function transform(buf,offset) {
        var a=0, b=0, c=0, d=0;
        var x = transformBuffer;

        a = state[0];
        b = state[1];
        c = state[2];
        d = state[3];

        for (i = 0; i < 16; i++) {
            x[i] = and(buf[i*4+offset],0xff);
            for (j = 1; j < 4; j++) {
                x[i]+=shl(and(buf[i*4+j+offset] ,0xff), j * 8);
            }
        }

        /* Runde 1 */
        a = FF ( a, b, c, d, x[ 0], S11, 0xd76aa478); /* 1 */
        d = FF ( d, a, b, c, x[ 1], S12, 0xe8c7b756); /* 2 */
        c = FF ( c, d, a, b, x[ 2], S13, 0x242070db); /* 3 */
        b = FF ( b, c, d, a, x[ 3], S14, 0xc1bdceee); /* 4 */
        a = FF ( a, b, c, d, x[ 4], S11, 0xf57c0faf); /* 5 */
        d = FF ( d, a, b, c, x[ 5], S12, 0x4787c62a); /* 6 */
        c = FF ( c, d, a, b, x[ 6], S13, 0xa8304613); /* 7 */
        b = FF ( b, c, d, a, x[ 7], S14, 0xfd469501); /* 8 */
        a = FF ( a, b, c, d, x[ 8], S11, 0x698098d8); /* 9 */
        d = FF ( d, a, b, c, x[ 9], S12, 0x8b44f7af); /* 10 */
        c = FF ( c, d, a, b, x[10], S13, 0xffff5bb1); /* 11 */
        b = FF ( b, c, d, a, x[11], S14, 0x895cd7be); /* 12 */
        a = FF ( a, b, c, d, x[12], S11, 0x6b901122); /* 13 */
        d = FF ( d, a, b, c, x[13], S12, 0xfd987193); /* 14 */
        c = FF ( c, d, a, b, x[14], S13, 0xa679438e); /* 15 */
        b = FF ( b, c, d, a, x[15], S14, 0x49b40821); /* 16 */

        /* Runde 2 */
        a = GG ( a, b, c, d, x[ 1], S21, 0xf61e2562); /* 17 */
        d = GG ( d, a, b, c, x[ 6], S22, 0xc040b340); /* 18 */
        c = GG ( c, d, a, b, x[11], S23, 0x265e5a51); /* 19 */
        b = GG ( b, c, d, a, x[ 0], S24, 0xe9b6c7aa); /* 20 */
        a = GG ( a, b, c, d, x[ 5], S21, 0xd62f105d); /* 21 */
        d = GG ( d, a, b, c, x[10], S22,  0x2441453); /* 22 */
        c = GG ( c, d, a, b, x[15], S23, 0xd8a1e681); /* 23 */
        b = GG ( b, c, d, a, x[ 4], S24, 0xe7d3fbc8); /* 24 */
        a = GG ( a, b, c, d, x[ 9], S21, 0x21e1cde6); /* 25 */
        d = GG ( d, a, b, c, x[14], S22, 0xc33707d6); /* 26 */
        c = GG ( c, d, a, b, x[ 3], S23, 0xf4d50d87); /* 27 */
        b = GG ( b, c, d, a, x[ 8], S24, 0x455a14ed); /* 28 */
        a = GG ( a, b, c, d, x[13], S21, 0xa9e3e905); /* 29 */
        d = GG ( d, a, b, c, x[ 2], S22, 0xfcefa3f8); /* 30 */
        c = GG ( c, d, a, b, x[ 7], S23, 0x676f02d9); /* 31 */
        b = GG ( b, c, d, a, x[12], S24, 0x8d2a4c8a); /* 32 */

        /* Runde 3 */
        a = HH ( a, b, c, d, x[ 5], S31, 0xfffa3942); /* 33 */
        d = HH ( d, a, b, c, x[ 8], S32, 0x8771f681); /* 34 */
        c = HH ( c, d, a, b, x[11], S33, 0x6d9d6122); /* 35 */
        b = HH ( b, c, d, a, x[14], S34, 0xfde5380c); /* 36 */
        a = HH ( a, b, c, d, x[ 1], S31, 0xa4beea44); /* 37 */
        d = HH ( d, a, b, c, x[ 4], S32, 0x4bdecfa9); /* 38 */
        c = HH ( c, d, a, b, x[ 7], S33, 0xf6bb4b60); /* 39 */
        b = HH ( b, c, d, a, x[10], S34, 0xbebfbc70); /* 40 */
        a = HH ( a, b, c, d, x[13], S31, 0x289b7ec6); /* 41 */
        d = HH ( d, a, b, c, x[ 0], S32, 0xeaa127fa); /* 42 */
        c = HH ( c, d, a, b, x[ 3], S33, 0xd4ef3085); /* 43 */
        b = HH ( b, c, d, a, x[ 6], S34,  0x4881d05); /* 44 */
        a = HH ( a, b, c, d, x[ 9], S31, 0xd9d4d039); /* 45 */
        d = HH ( d, a, b, c, x[12], S32, 0xe6db99e5); /* 46 */
        c = HH ( c, d, a, b, x[15], S33, 0x1fa27cf8); /* 47 */
        b = HH ( b, c, d, a, x[ 2], S34, 0xc4ac5665); /* 48 */

        /* Runde 4 */
        a = II ( a, b, c, d, x[ 0], S41, 0xf4292244); /* 49 */
        d = II ( d, a, b, c, x[ 7], S42, 0x432aff97); /* 50 */
        c = II ( c, d, a, b, x[14], S43, 0xab9423a7); /* 51 */
        b = II ( b, c, d, a, x[ 5], S44, 0xfc93a039); /* 52 */
        a = II ( a, b, c, d, x[12], S41, 0x655b59c3); /* 53 */
        d = II ( d, a, b, c, x[ 3], S42, 0x8f0ccc92); /* 54 */
        c = II ( c, d, a, b, x[10], S43, 0xffeff47d); /* 55 */
        b = II ( b, c, d, a, x[ 1], S44, 0x85845dd1); /* 56 */
        a = II ( a, b, c, d, x[ 8], S41, 0x6fa87e4f); /* 57 */
        d = II ( d, a, b, c, x[15], S42, 0xfe2ce6e0); /* 58 */
        c = II ( c, d, a, b, x[ 6], S43, 0xa3014314); /* 59 */
        b = II ( b, c, d, a, x[13], S44, 0x4e0811a1); /* 60 */
        a = II ( a, b, c, d, x[ 4], S41, 0xf7537e82); /* 61 */
        d = II ( d, a, b, c, x[11], S42, 0xbd3af235); /* 62 */
        c = II ( c, d, a, b, x[ 2], S43, 0x2ad7d2bb); /* 63 */
        b = II ( b, c, d, a, x[ 9], S44, 0xeb86d391); /* 64 */

        state[0] +=a;
        state[1] +=b;
        state[2] +=c;
        state[3] +=d;

    }
    /* Mit der Initialisierung von Dobbertin:
       state[0] = 0x12ac2375;
       state[1] = 0x3b341042;
       state[2] = 0x5f62b97c;
       state[3] = 0x4ba763ed;
       gibt es eine Kollision:

       begin 644 Message1
       M7MH=JO6_>MG!X?!51$)W,CXV!A"=(!AR71,<X`Y-IIT9^Z&8L$2N'Y*Y:R.;
       39GIK9>TF$W()/MEHR%C4:G1R:Q"=
       `
       end

       begin 644 Message2
       M7MH=JO6_>MG!X?!51$)W,CXV!A"=(!AR71,<X`Y-IIT9^Z&8L$2N'Y*Y:R.;
       39GIK9>TF$W()/MEHREC4:G1R:Q"=
       `
       end
    */
    function init() {
        count[0]=count[1] = 0;
        state[0] = 0x67452301;
        state[1] = 0xefcdab89;
        state[2] = 0x98badcfe;
        state[3] = 0x10325476;
        for (i = 0; i < digestBits.length; i++)
            digestBits[i] = 0;
    }

    function update(b) {
        var index,i;

        index = and(shr(count[0],3) , 0x3f);
        if (count[0]<0xffffffff-7)
          count[0] += 8;
        else {
          count[1]++;
          count[0]-=0xffffffff+1;
          count[0]+=8;
        }
        buffer[index] = and(b,0xff);
        if (index  >= 63) {
            transform(buffer, 0);
        }
    }

    function finish() {
        var bits = new array(8);
        var        padding;
        var        i=0, index=0, padLen=0;

        for (i = 0; i < 4; i++) {
            bits[i] = and(shr(count[0],(i * 8)), 0xff);
        }
        for (i = 0; i < 4; i++) {
            bits[i+4]=and(shr(count[1],(i * 8)), 0xff);
        }
        index = and(shr(count[0], 3) ,0x3f);
        padLen = (index < 56) ? (56 - index) : (120 - index);
        padding = new array(64);
        padding[0] = 0x80;
        for (i=0;i<padLen;i++)
          update(padding[i]);
        for (i=0;i<8;i++)
          update(bits[i]);

        for (i = 0; i < 4; i++) {
            for (j = 0; j < 4; j++) {
                digestBits[i*4+j] = and(shr(state[i], (j * 8)) , 0xff);
            }
        }
    }

/* Ende des MD5 Algorithmus */

function hexa(n) {
 var hexa_h = "0123456789abcdef";
 var hexa_c="";
 var hexa_m=n;
 for (hexa_i=0;hexa_i<8;hexa_i++) {
   hexa_c=hexa_h.charAt(Math.abs(hexa_m)%16)+hexa_c;
   hexa_m=Math.floor(hexa_m/16);
 }
 return hexa_c;
}


var ascii="01234567890123456789012345678901" +
          " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ"+
          "[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";

function MD5(nachricht)
{
 var l,s,k,ka,kb,kc,kd;

 init();
 for (k=0;k<nachricht.length;k++) {
   l=nachricht.charAt(k);
   update(ascii.lastIndexOf(l));
 }
 finish();
 ka=kb=kc=kd=0;
 for (i=0;i<4;i++) ka+=shl(digestBits[15-i], (i*8));
 for (i=4;i<8;i++) kb+=shl(digestBits[15-i], ((i-4)*8));
 for (i=8;i<12;i++) kc+=shl(digestBits[15-i], ((i-8)*8));
 for (i=12;i<16;i++) kd+=shl(digestBits[15-i], ((i-12)*8));
 s=hexa(kd)+hexa(kc)+hexa(kb)+hexa(ka);
 return s;
}