

//variable fuers kontaktforum
var blnInteresseCancel;
var blnMessageCancel;

//allgemeine funktionen

var absenden = 0;
function nurEinmalAlt() {
	if (absenden == 0) {
		absenden++;
		return true;
		}
	else {
		alert("Bitte nur einmal klicken, die Verarbeitung der Daten kann etwas dauern!");
		return false;
		}
}

function nurEinmal() {
	return true;
}

//onload= initpage();
//onunload = initpage();

function initpage() {
	absenden=0;
}

function trim(zeichenfolge)
{
	var i;
	var whitespace = true;

	//Pruefe, ob ein reiner Leerstring vorliegt.
	for (i = 0; i <= zeichenfolge.length - 1; i++) {
		if (zeichenfolge.substring(i, i+1) != ' ' && zeichenfolge.substring(i, i+1) != '\n' && zeichenfolge.substring(i, i+1) != '\t' && zeichenfolge.substring(i, i+1) != '\r' && zeichenfolge.substring(i, i+1) != '\b') {
			whitespace = false;
		}
	}
	if (whitespace == false) {
		while (zeichenfolge.substring(0, 1) ==  ' ' || zeichenfolge.substring(0, 1) == '\n' || zeichenfolge.substring(0, 1) == '\t') {
			zeichenfolge = zeichenfolge.substring(1, zeichenfolge.length);
		}
		while (zeichenfolge.substring(zeichenfolge.length - 1, zeichenfolge.length) == ' ' || zeichenfolge.substring(zeichenfolge.length - 1, zeichenfolge.length) == '\n' || zeichenfolge.substring(zeichenfolge.length - 1, zeichenfolge.length) == '\t') {
			zeichenfolge = zeichenfolge.substring(0, zeichenfolge.length - 1);
		}
	} else {
		zeichenfolge = "";
	}
	return zeichenfolge;
} //Ende von function trim

// Die Funktion mail_not_good ueberprueft die Gueltigkeit der E-Mail-Adresse.
// Sie liefert als Return-Wert true, falls die E-Mail-Adresse fehlerhaft war.

// ende allgemeine funktionen


// guide funktionen




//Die Formulareingaben werden auf Vollstaendigkeit und Plausibilitaet ueberprueft.

//Die Formulareingaben werden auf Vollstaendigkeit und Plausibilitaet ueberprueft.
function ValidierungEintrag()
{
	var valid = true;
	var msg = "";
	var mail = trim(document.eintrag.Email.value);

	//Neueintrag oder Aenderung
	if (document.eintrag.Neueintrag[0].checked == false && document.eintrag.Neueintrag[1].checked == false) {
		valid = false;
		msg += "Bitte gib an, ob es sich um einen Neueintrag\n" +
		"oder eine Änderung handelt.\n\n";
	}

	//Name
	if (document.eintrag.Name.value == "") {
		valid = false;
		msg += "Du hast keinen Namen eingegeben.\n\n";
	}

	//Rubrik
	//Die Eigenschaft .selectedIndex ist -1, falls kein Eintrag ausgewählt wurde.
	if (document.eintrag.Rubrik.selectedIndex == 0) {
		valid = false;
		msg += "Du hast keine Rubrik ausgewählt.\n\n";
	}

	//Staat
	if (document.eintrag.Staat.value == "") {
		valid = false;
		msg += "Du hast keinen Staat eingegeben.\n\n";
	}

	//Bundesland
	if (document.eintrag.Bundesland.value == "") {
		valid = false;
		msg += "Du hast kein Bundesland eingegeben.\n\n";
	}

	//Stadt
	if (document.eintrag.Stadt.value == "") {
		valid = false;
		msg += "Du hast keine Stadt eingegeben.\n\n";
	}

	//PLZ
	if (document.eintrag.PLZ.value == "") {
		valid = false;
		msg += "Du hast keine PLZ eingegeben.\n\n";
	}

	//Beschreibung
	if (document.eintrag.Beschreibung.value == "") {
		valid = false;
		msg += "Du hast keine Beschreibung eingegeben.\n\n";
	}

	if (valid == false) {
		alert(msg);
		return false;
	} else {
		return nurEinmal();
	}

} //Ende von function ValidierungEintrag

//ende guide funktionen




//anzeigen funktionen

function gehezu(strValue) {
			window.location.href = '/anzeigen/aufgeben.php?rubrik=' + strValue;
}


// faq

function switchit(liste){

	var listElementStyle;
	listElementStyle=document.getElementById(liste).style;
	if (listElementStyle.display!='block')
	{
		listElementStyle.display='block';
	}
	else {
		listElementStyle.display='none';
	}
}

//mailsystem

function GetMail(system,id) {
	OpenWin = this.open('/helper/getmail.php?system='+system+'&id='+id, "", "toolbar=no,menubar=no,location=no,scrollbars=no,resize=no,height=250,width=537");
}

function StartMail(page) {
OpenWin = this.open(page, "", "toolbar=no,menubar=no,location=no,scrollbars=yes,resize=yes,height=400,width=400");
}

//homepagesystem

function StartHome(page, nickname) {
		nickname=nickname.replace(/-/g, '');
		OpenWin = this.open(page, nickname, "toolbar=no,menubar=no,location=no,scrollbars=yes,resize=yes,height="+hpheight()+",width=560");
}


function bLaengeText(strAnzeigentext) {
		    		var msg="";
					if (strAnzeigentext.length>= 200) {

						msg += "Die Länge des Textes ist auf 200 Zeichen begrenzt. Bitte nochmal editieren.\n\n";
				        alert(msg);
				        return false;

					 } else {
						return true;
					}

}

// prueft die hoehe des screens und richtet die hp danach aus
function hpheight() {
  var scr = screen.height;
  if (scr>750) 	{
	return '700';
  } else {
	return '600';
  }
}

function meldeanzeige(anzeigenid, verify) {
	var msg;
	//msg  = "Willst du die Anzeige wirklich als Spam oder unpassend in der Rubrik melden?";
	//var a=confirm(msg);
	var a=true;
	reason = document.getElementById('reason'+anzeigenid).value;
	if (a == true) {
		//var reason=prompt("Du kannst hier einen Grund angeben:", "");
		document.getElementById('id'+anzeigenid).innerHTML = " Anzeige ist gemeldet.";
		document.getElementById('spamgif').src = '/anzeigen/melden.php?idanzeige='+anzeigenid+'&amp;verify='+verify+'&amp;reason='+encodeURIComponent(reason);
		switchit('a'+anzeigenid);
	}
}

/////////////////////////////////////////
// PHPLiveX Library                    //
// (C) Copyright 2006 Arda Beyazoglu   //
// Version: 2.4.1                      //
// Home Page: www.phplivex.com 		   //
// Contact: ardabeyazoglu@gmail.com	   //
// License: LGPL	   				   //
/////////////////////////////////////////

function PHPLiveX(){
	this.Properties = {
		type: "e", mode: "rw", target: null, preload: null, method: "post",
		onRequest: null, onFinish: null, onUpdate: null,
		interval: false, clearValue: false,
		preloadStyle: "display", targetProperty: "innerContent",
		url: null
	};
}

PHPLiveX.prototype.ShowError = function(errorMsg){
	if(errorMsg){
		alert(errorMsg);
		return false;
	}else{
		return true;
	}
}

PHPLiveX.prototype.GetXmlHttp = function(){
	objXmlHttp = false;
	if (window.XMLHttpRequest) {
        objXmlHttp = new XMLHttpRequest();
    	if (objXmlHttp.overrideMimeType) {
            objXmlHttp.overrideMimeType('text/xml');
    	}
	} else if (window.ActiveXObject) {
    	try {
        	objXmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
    	} catch (e) {
        	try {
            	objXmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
        	} catch (e) {}
    	}
	}

	if (!objXmlHttp) {
        alert('Giving up :( Cannot create an XMLHTTP instance');
    	return false;
	}

	return objXmlHttp;
}

PHPLiveX.prototype.CreatePreloading = function(){
	if(this.Properties.preload != null){
		if(this.Properties.preloadStyle == "display") this.Properties.preload.style.display = "";
		this.Properties.preload.style.visibility = "visible";
	}
	if(this.Properties.clearValue) this.Properties.target.innerHTML = "";
}

PHPLiveX.prototype.CompletePreloading = function(){
	if(this.Properties.preload != null){
		if(this.Properties.preloadStyle == "display") this.Properties.preload.style.display = "none";
		this.Properties.preload.style.visibility = "hidden";
	}
}

PHPLiveX.prototype.ExternalCall = function(){
	var args = this.ExternalCall.arguments;
	newargs = new Array();
	for(i=0; i<args.length-1; i++){
		newargs.push(i + "=" + args[i]);
	}
	newargs.push(args[args.length-1]);
	this.Callback(null, newargs);
}

PHPLiveX.prototype.SubmitForm = function(form, filter, attributes){
	if(filter){
		if(!filter(form)) return false;
	}
	var args = new Array();
	var fields = form.elements;
	for(i=0; i<fields.length; i++){
		if(fields[i].type == "button" || fields[i].type == "submit" || fields[i].type == "reset") continue;
		if (fields[i].type=="checkbox") {
			args.push(fields[i].name + "=" + fields[i].checked);
		} else {
			var v = fields[i].value;
			v = v.replace(/,/g, '#}#');
			args.push(fields[i].name + "=" + encodeURIComponent(v));
		}
	}
	args.push(attributes);
	this.Callback(null, args);
	return false;
}

PHPLiveX.prototype.CreateOutput = function(funcName, funcArgs, funcUrl){
	var data = (funcName) ? "funcName=" + escape(funcName) : "";
	var args = new Array();
	if(!funcUrl){ funcUrl = "/test1.php"; }
	if(funcArgs){
		funcArgs = unescape(funcArgs);
		if(funcArgs.indexOf(",") != -1) args = funcArgs.split(",");
		else args.push(funcArgs);
		if(funcName){
			for (i=0;i<args.length;i++) data += "&funcArgs[]=" + escape(args[i]);
		}else{
			for (i=0;i<args.length;i++){
				key = escape(args[i].split("=")[0]);
				val = escape(args[i].split("=")[1]);
				data += "&" + key + "=" + val;
			}
		}
	}

	var _root = this;

	var XmlHttp = this.GetXmlHttp();
	var asynchronous = (this.Properties.type != "r") ? true : false;

	if(this.Properties.method == "get"){
		data += "&RequestId=" + new Date().getTime();
		if(funcUrl.indexOf("?") != -1){
			data = (funcUrl.indexOf("&")) ? "&" + data : data;
			XmlHttp.open("GET", funcUrl + "&" + data, asynchronous);
		}else{
			XmlHttp.open("GET", funcUrl + "?" + data, asynchronous);
		}
	}else XmlHttp.open("post", funcUrl, asynchronous);

	if(this.Properties.method == "post"){
		XmlHttp.setRequestHeader("Method", "POST " + funcUrl + " HTTP/1.1");
		XmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	}

	if(asynchronous){
		this.CreatePreloading();
		if(_root.Properties.onRequest != null) _root.Properties.onRequest();

		XmlHttp.onreadystatechange = function(){
			if(XmlHttp.readyState == 0){
				XmlHttp.abort();
			}else if(XmlHttp.readyState == 4){
				_root.CompletePreloading();

				var output = unescape(XmlHttp.responseText);
				if(output.indexOf("<phplivex>") != -1){
					var outparts = output.split("<phplivex>");
					output = outparts[outparts.length-1].split("</phplivex>")[0];
				}

				output = output.replace(/<plus>/g, "+");

				var jscode = "";
				var jsparts = output.match(/<script[^>]*>(.|\n|\t|\r)*?<\/script>/gi);
				if(jsparts){
					for(i=0;i<jsparts.length;i++){
						jscode += jsparts[i].replace(/<script[^>]*>|<\/script>/gi, "");
						output = output.replace(jsparts[i], "");
					}
				}

				var objparts = output.match(/<plxobject>(.|\n|\t|\r)*?<\/plxobject>/gi);
				if(objparts){
					objparts[0] = objparts[0].replace(/<plxobject>|<\/plxobject>/gi, "");
					eval("output = " + objparts[0]);
				}

				if(_root.Properties.onFinish != null){
					resp = _root.Properties.onFinish(output);
					if(resp != undefined) output = resp;
				}

				if(_root.Properties.preload != null && _root.Properties.myPreload == null){
					if(_root.Properties.preloadStyle == "visibility"){
						_root.Properties.preload.style.visibility = "hidden";
						_root.Properties.preload.style.display = "";
					}
					if(_root.Properties.preloadStyle == "display"){
						_root.Properties.preload.style.display = "none";
						_root.Properties.preload.style.visibility = "visible";
					}
				}

				if(_root.Properties.target == "alert"){ alert(output); }
				else if(_root.Properties.type != "e"){
					var attr = _root.Properties.targetProperty;
					var item = _root.Properties.target;
					if(attr == "innerContent"){
						if(item == "[object HTMLInputElement]" || item.type != undefined) attr = "value";
						else attr = "innerHTML";
					}
					switch(_root.Properties.mode){
						case "aw": eval("item." + attr + " += output;"); break;
						case "rw": eval("item." + attr + " = output;"); break;
						case "asw": eval("item." + attr + " = output + item." + attr + ";"); break;
					}
				}

				if(jscode != ""){
					var script = document.createElement("script");
					script.type = "text/javascript";
					script.lang = "javascript";
					script.text = jscode;
					document.getElementsByTagName("head")[0].appendChild(script);
				}

				if(_root.Properties.onUpdate != null) _root.Properties.onUpdate(output);
			}
		}

		if(this.Properties.method == "get") XmlHttp.send(null);
		else XmlHttp.send(data);
	}else{
		if(this.Properties.method == "get") XmlHttp.send(null);
		else XmlHttp.send(data);
		var output = unescape(XmlHttp.responseText);
		if(output.indexOf("<phplivex>") != -1){
			var outparts = output.split("<phplivex>");
			output = outparts[outparts.length-1].split("</phplivex>")[0];
		}
		output = output.replace(/<plus>/g, "+");
		output = output.replace(/<comma>/g, ",");

		var jscode = "";
		var parts = output.match(/<script[^>]*>(.|\n|\t|\r)*?<\/script>/gi);
		if(parts){
			for(i=0;i<parts.length;i++){
			jscode += parts[i].replace(/<script[^>]*>|<\/script>/gi, "");
			output = output.replace(parts[i], "");
		}
	}
		if(jscode != ""){
			var script = document.createElement("script");
			script.type = "text/javascript";
			script.lang = "javascript";
			script.text = jscode;
			document.getElementsByTagName("head")[0].appendChild(script);
		}

		return output;
	}
}

PHPLiveX.prototype.ParseArray = function(arr){
	if(arr.length == undefined) return this.ParseObject(arr);
	var values = new Array();

	for(key in arr){
		if(typeof arr[key] == "string") val = "\"" + arr[key] + "\"";
		else if(typeof arr[key] == "object"){
			if(arr[key].length != undefined) val = this.ParseArray(arr[key]);
			else val = this.ParseObject(arr[key]);
		}
		else val = arr[key];
		values.push(val);
	}

	return "[" + values.join(", ") + "]";
}

PHPLiveX.prototype.ParseObject = function(obj){
	if(obj.length != undefined) return this.ParseArray(obj);
	var values = new Array();

	for(key in obj){
		if(typeof obj[key] == "string") val = "\"" + key + "\": " + "\"" + obj[key] + "\"";
		else if(typeof obj[key] == "object"){
			if(obj[key].length != undefined) val = "\"" + key + "\": " + this.ParseArray(obj[key]);
			else val = "\"" + key + "\": " + this.ParseObject(obj[key]);
		}
		else val = "\"" + key + "\": " + obj[key];
		values.push(val);
	}

	return "{" + values.join(", ") + "}";
}

PHPLiveX.prototype.Callback = function(funcName, funcArgs){
	var args = [];
	for(i=0;i<funcArgs.length-1;i++){
		args.push(funcArgs[i]);

		if(typeof(args[i]) == "object") args[i] = "<plxobj>" + escape(this.ParseObject(args[i])) + "</plxobj>";
		else if(funcName) args[i] = escape(args[i]);
		if(String(args[i]).indexOf("+")) args[i] = String(args[i]).replace(/\+/g, "<plus>");
	}
	var params = funcArgs[funcArgs.length-1];
	for(key in this.Properties){
		if(eval("params." + key)){
			eval("var value = params." + key + ";");
			eval("this.Properties." + key + " = value;");
		}
	}

	if(this.Properties.target != null){
		this.Properties.type = null;
		targetId = String(this.Properties.target);
		if(document.getElementById(targetId))
		this.Properties.target = document.getElementById(targetId);
	}
	if(this.Properties.preload != null){
		preloadId = String(this.Properties.preload);
		if(document.getElementById(preloadId))
		this.Properties.preload = document.getElementById(preloadId);
	}
	url = "/test1.php";
	if(!this.Properties.url) this.Properties.url = url;

	var StringArgs = args.join();

	try{
		if(this.Properties.type == "r"){
			return this.CreateOutput(funcName, StringArgs, this.Properties.url);
		}else{
			this.CreateOutput(funcName, StringArgs, this.Properties.url);
		}
	}catch(ex){
		this.ShowError(ex);
	}

	if(this.Properties.interval && callType == null){
		var strArgs = funcArgs[funcArgs.length-1];
		var st = setTimeout("eval(" + funcName + "('" + StringArgs + "', '" + strArgs + "'))", this.Properties.interval);
	}
}

document.onmousemove = myLoad;
function myLoad(ev){
	 ev = ev || window.event;
	var x=0;
	var y=0;
	if (ev.pageX || ev.pageY) 	 {
		x = ev.pageX;
		y = ev.pageY;
	} else if (ev.clientX || ev.clientY) {
		x = ev.clientX + document.body.scrollLeft
	+ document.documentElement.scrollLeft;
		y = ev.clientY + document.body.scrollTop
	+ document.documentElement.scrollTop;
	}
	var p = document.getElementById('pageLoad');
		if (p) {
			if(y <= 2000 && x <= 2000){
				p.style.left = (x + 10)+"px";
				p.style.top = (y + 10)+"px";
			}
	}
}


function md5 ( str ) {
    // http://kevin.vanzonneveld.net
    // +   original by: Webtoolkit.info (http://www.webtoolkit.info/)
    // -    depends on: utf8_encode
    // *     example 1: md5('Kevin van Zonneveld');
    // *     returns 1: '6e658d4bfcb59cc13f96c14450ac40b9'


    function RotateLeft(lValue, iShiftBits) {
        return (lValue<<iShiftBits) | (lValue>>>(32-iShiftBits));
    }

    function AddUnsigned(lX,lY) {
        var lX4,lY4,lX8,lY8,lResult;
        lX8 = (lX & 0x80000000);
        lY8 = (lY & 0x80000000);
        lX4 = (lX & 0x40000000);
        lY4 = (lY & 0x40000000);
        lResult = (lX & 0x3FFFFFFF)+(lY & 0x3FFFFFFF);
        if (lX4 & lY4) {
            return (lResult ^ 0x80000000 ^ lX8 ^ lY8);
        }
        if (lX4 | lY4) {
            if (lResult & 0x40000000) {
                return (lResult ^ 0xC0000000 ^ lX8 ^ lY8);
            } else {
                return (lResult ^ 0x40000000 ^ lX8 ^ lY8);
            }
        } else {
            return (lResult ^ lX8 ^ lY8);
        }
    }

    function F(x,y,z) { return (x & y) | ((~x) & z); }
    function G(x,y,z) { return (x & z) | (y & (~z)); }
    function H(x,y,z) { return (x ^ y ^ z); }
    function I(x,y,z) { return (y ^ (x | (~z))); }

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

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

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

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

    function ConvertToWordArray(str) {
        var lWordCount;
        var lMessageLength = str.length;
        var lNumberOfWords_temp1=lMessageLength + 8;
        var lNumberOfWords_temp2=(lNumberOfWords_temp1-(lNumberOfWords_temp1 % 64))/64;
        var lNumberOfWords = (lNumberOfWords_temp2+1)*16;
        var lWordArray=Array(lNumberOfWords-1);
        var lBytePosition = 0;
        var lByteCount = 0;
        while ( lByteCount < lMessageLength ) {
            lWordCount = (lByteCount-(lByteCount % 4))/4;
            lBytePosition = (lByteCount % 4)*8;
            lWordArray[lWordCount] = (lWordArray[lWordCount] | (str.charCodeAt(lByteCount)<<lBytePosition));
            lByteCount++;
        }
        lWordCount = (lByteCount-(lByteCount % 4))/4;
        lBytePosition = (lByteCount % 4)*8;
        lWordArray[lWordCount] = lWordArray[lWordCount] | (0x80<<lBytePosition);
        lWordArray[lNumberOfWords-2] = lMessageLength<<3;
        lWordArray[lNumberOfWords-1] = lMessageLength>>>29;
        return lWordArray;
    }

    function WordToHex(lValue) {
        var WordToHexValue="",WordToHexValue_temp="",lByte,lCount;
        for (lCount = 0;lCount<=3;lCount++) {
            lByte = (lValue>>>(lCount*8)) & 255;
            WordToHexValue_temp = "0" + lByte.toString(16);
            WordToHexValue = WordToHexValue + WordToHexValue_temp.substr(WordToHexValue_temp.length-2,2);
        }
        return WordToHexValue;
    }

    var x=Array();
    var k,AA,BB,CC,DD,a,b,c,d;
    var S11=7, S12=12, S13=17, S14=22;
    var S21=5, S22=9 , S23=14, S24=20;
    var S31=4, S32=11, S33=16, S34=23;
    var S41=6, S42=10, S43=15, S44=21;

    str = utf8_encode(str);
    x = ConvertToWordArray(str);
    a = 0x67452301; b = 0xEFCDAB89; c = 0x98BADCFE; d = 0x10325476;

    for (k=0;k<x.length;k+=16) {
        AA=a; BB=b; CC=c; DD=d;
        a=FF(a,b,c,d,x[k+0], S11,0xD76AA478);
        d=FF(d,a,b,c,x[k+1], S12,0xE8C7B756);
        c=FF(c,d,a,b,x[k+2], S13,0x242070DB);
        b=FF(b,c,d,a,x[k+3], S14,0xC1BDCEEE);
        a=FF(a,b,c,d,x[k+4], S11,0xF57C0FAF);
        d=FF(d,a,b,c,x[k+5], S12,0x4787C62A);
        c=FF(c,d,a,b,x[k+6], S13,0xA8304613);
        b=FF(b,c,d,a,x[k+7], S14,0xFD469501);
        a=FF(a,b,c,d,x[k+8], S11,0x698098D8);
        d=FF(d,a,b,c,x[k+9], S12,0x8B44F7AF);
        c=FF(c,d,a,b,x[k+10],S13,0xFFFF5BB1);
        b=FF(b,c,d,a,x[k+11],S14,0x895CD7BE);
        a=FF(a,b,c,d,x[k+12],S11,0x6B901122);
        d=FF(d,a,b,c,x[k+13],S12,0xFD987193);
        c=FF(c,d,a,b,x[k+14],S13,0xA679438E);
        b=FF(b,c,d,a,x[k+15],S14,0x49B40821);
        a=GG(a,b,c,d,x[k+1], S21,0xF61E2562);
        d=GG(d,a,b,c,x[k+6], S22,0xC040B340);
        c=GG(c,d,a,b,x[k+11],S23,0x265E5A51);
        b=GG(b,c,d,a,x[k+0], S24,0xE9B6C7AA);
        a=GG(a,b,c,d,x[k+5], S21,0xD62F105D);
        d=GG(d,a,b,c,x[k+10],S22,0x2441453);
        c=GG(c,d,a,b,x[k+15],S23,0xD8A1E681);
        b=GG(b,c,d,a,x[k+4], S24,0xE7D3FBC8);
        a=GG(a,b,c,d,x[k+9], S21,0x21E1CDE6);
        d=GG(d,a,b,c,x[k+14],S22,0xC33707D6);
        c=GG(c,d,a,b,x[k+3], S23,0xF4D50D87);
        b=GG(b,c,d,a,x[k+8], S24,0x455A14ED);
        a=GG(a,b,c,d,x[k+13],S21,0xA9E3E905);
        d=GG(d,a,b,c,x[k+2], S22,0xFCEFA3F8);
        c=GG(c,d,a,b,x[k+7], S23,0x676F02D9);
        b=GG(b,c,d,a,x[k+12],S24,0x8D2A4C8A);
        a=HH(a,b,c,d,x[k+5], S31,0xFFFA3942);
        d=HH(d,a,b,c,x[k+8], S32,0x8771F681);
        c=HH(c,d,a,b,x[k+11],S33,0x6D9D6122);
        b=HH(b,c,d,a,x[k+14],S34,0xFDE5380C);
        a=HH(a,b,c,d,x[k+1], S31,0xA4BEEA44);
        d=HH(d,a,b,c,x[k+4], S32,0x4BDECFA9);
        c=HH(c,d,a,b,x[k+7], S33,0xF6BB4B60);
        b=HH(b,c,d,a,x[k+10],S34,0xBEBFBC70);
        a=HH(a,b,c,d,x[k+13],S31,0x289B7EC6);
        d=HH(d,a,b,c,x[k+0], S32,0xEAA127FA);
        c=HH(c,d,a,b,x[k+3], S33,0xD4EF3085);
        b=HH(b,c,d,a,x[k+6], S34,0x4881D05);
        a=HH(a,b,c,d,x[k+9], S31,0xD9D4D039);
        d=HH(d,a,b,c,x[k+12],S32,0xE6DB99E5);
        c=HH(c,d,a,b,x[k+15],S33,0x1FA27CF8);
        b=HH(b,c,d,a,x[k+2], S34,0xC4AC5665);
        a=II(a,b,c,d,x[k+0], S41,0xF4292244);
        d=II(d,a,b,c,x[k+7], S42,0x432AFF97);
        c=II(c,d,a,b,x[k+14],S43,0xAB9423A7);
        b=II(b,c,d,a,x[k+5], S44,0xFC93A039);
        a=II(a,b,c,d,x[k+12],S41,0x655B59C3);
        d=II(d,a,b,c,x[k+3], S42,0x8F0CCC92);
        c=II(c,d,a,b,x[k+10],S43,0xFFEFF47D);
        b=II(b,c,d,a,x[k+1], S44,0x85845DD1);
        a=II(a,b,c,d,x[k+8], S41,0x6FA87E4F);
        d=II(d,a,b,c,x[k+15],S42,0xFE2CE6E0);
        c=II(c,d,a,b,x[k+6], S43,0xA3014314);
        b=II(b,c,d,a,x[k+13],S44,0x4E0811A1);
        a=II(a,b,c,d,x[k+4], S41,0xF7537E82);
        d=II(d,a,b,c,x[k+11],S42,0xBD3AF235);
        c=II(c,d,a,b,x[k+2], S43,0x2AD7D2BB);
        b=II(b,c,d,a,x[k+9], S44,0xEB86D391);
        a=AddUnsigned(a,AA);
        b=AddUnsigned(b,BB);
        c=AddUnsigned(c,CC);
        d=AddUnsigned(d,DD);
    }

    var temp = WordToHex(a)+WordToHex(b)+WordToHex(c)+WordToHex(d);

    return temp.toLowerCase();
}


