var ie4 = false, ie = false, ie5_mac = false, ie55 = false;
var nn4 = false, dom = false;
//dynamic content 
var iens6= document.all || document.getElementById;
var agent = navigator.userAgent.toLowerCase();
var loaded = 0;
var doc = '';
var scrollY = 0;

if (document.all)
{
	var version = parseFloat(agent.substr(agent.indexOf("msie")+5, 3));
	if (agent.indexOf("mac") != -1 && version >= 5)
		ie5_mac = true;
	else
	{
		if (version >= 5.5)
			ie55 = true;
	}
	if (ie55 || ie5_mac) ie = true;
} else if (document.getElementById) {
	dom = true;
}

function init() {
	if (dom) {
		var flyOut = document.getElementById('leftNavContainer');
		if (flyOut) flyOut.addEventListener("mouseover",setEvent,true);
		
		var files = document.getElementById('relatedFiles');
		if (files) files.addEventListener("mouseover",setEvent,true);
	}
	//_uacct = "UA-1108693-1";
	//urchinTracker();
	setTimeout("isloaded()",1250);
}

function isloaded ()
{
	loaded = 1;
}

var current = "";
var globalHide = '';
var globalHideDoc = '';
var clientY = '';
var leftNavFlyOut = new Array();

function show(name,nohide)
{
	if (!loaded) return;
	clearTimeout(globalHide);

	if (current && current != name) {
		hide(current);
	}
	
	if (current && current == name && nohide) return;

	current = name;
	var tip = document.getElementById(name + 'Flydown');
	var caller = document.getElementById(name);

	if (tip) {
		if (tip.style.visibility == "visible") {
			hide(current)
		} else {
			tip.style.visibility = 'visible';
			if (caller) caller.style.color = '#FA9A00';
			if (doc) doc.className = 'Headline';
		}
	}
}

function showDocInfo(name,nohide)
{
	clearTimeout(globalHideDoc);

	if (current && current != name) {
		hideDocInfo(current);
	}
	
	if (current && current == name && nohide) return;

	current = name;
	var tip = document.getElementById(name + 'Flydown');
	var caller = document.getElementById(name + 'Link');

	if (tip) {
		if (tip.style.visibility == "visible") {
			hideDocInfo(current)
		} else {
			tip.style.visibility = 'visible';
			if (caller) caller.style.color = '#FA9A00';
		}
	}
}

function hide(name)
{
if (!loaded) return;
if (!name) name = current;

var tip = document.getElementById(name + 'Flydown');
var caller = document.getElementById(current);
if (tip)
{
	tip.style.visibility = "hidden";
	if (caller) caller.style.color = '#00349C';
	current="";
} 
}

function hideDocInfo(name)
{
if (!name) name = current;

var tip = document.getElementById(name + 'Flydown');
var caller = document.getElementById(current + 'Link');
if (tip)
{
	tip.style.visibility = "hidden";
	if (caller) caller.style.color = '';
	current="";
} 
}

/* Function highlights left nav section when subnavs are chosen */
function highlight(id){

var x = document.getElementById(id);

if (x)
{
x.style.color = "#FA9A00";
x.onmouseout = "";
x.onmouseover = "";

}
}


/* Highlight function invoked and defined on a per-page basis */
highlight('nav1')

function showLeftNav(num)
{
	for(i=1;i<7;i++)
	{
		//a = eval("document.all.LN" + i)
		a = document.getElementById("LN" + i);
		//alert("i="+i)
		
		if(i==num)
		{
			a.style.display='block';
		}else{
			a.style.display='none';
		}
	}
	
	
}

/* create the language option on the first run */ 
function buildLangs (name) {
	var langSelect = document.getElementById('jumpLangSelect');
	if (langSelect.length == 0) {
		for (i in language) {
			var n = new Option ( language[i][0],language[i][1] );
			langSelect[langSelect.length] = n;
			if (language[i][2]) langSelect.selectedIndex = langSelect.length -1;
		}
	} 
	show(name);
}

/* create the country option on the first run */ 
function buildCountries (name) {
	var countrySelect = document.getElementById('jumpCountrySelect');
	if (countrySelect.length == 0) {
		for (i in countryOptions) { 
			var n = new Option ( countryOptions[i][1],countryOptions[i][0] );
			countrySelect[countrySelect.length] = n;
		}
	} 
	show(name);
}

/* jump to the selected langauge if possible in the same location relative to the lang */
function jumpMenu (select) {
	var s = document.getElementById(select);
	location = s[s.selectedIndex].value;
}

function submitSearch () {
	var f = document.forms['searchForm'];
	f.submit();
}

function submitContact()
{
	var f = document.forms['contactUs'];
	if (f.elements[4].value == '') 
	{
		alert('Please enter the verify string');
	}	
	else if (f.elements[5].value != MD5(f.elements[4].value)) 
	{
		alert('The verify image does not match your entry')
	}
	else if (f.elements[0].value == '')  // check for contact name
	{
		alert('Please enter a contact name.');
	}
	else if (f.elements[1].value == '')  // check for e-Mail address
	{
		alert('Please enter an e-Mail address.');
	}
	else if (f.elements[1].value != '' &&
    (f.elements[1].value.indexOf('@') == -1 ||
	 f.elements[1].value.indexOf('.') == -1))  // check for valid e-Mail address
	{
		alert('Please enter a valid e-Mail address.');		
  	}
	else if (f.elements[3] && f.elements[3].value == '-1')  // check for submission regarding
	{
		alert('Please select what your submission is regarding.');
	}
	else if (f.elements[3].value == '')  // check for comment
	{
		alert('Please enter a question or comment.');
	}
	else
	{
		f.submit();
	}
}

function submitEmail()
{
	var f = document.forms['emailThis'];
	if (f.elements[6].value == '') 
	{
		alert('Please enter the verify string');
	}	
	else if (f.elements[7].value != MD5(f.elements[6].value)) 
	{
		alert('The verify image does not match your entry')
	}
	else if (f.elements[0].value == '')  // check for to address
	{
		alert('Please enter a to: address.');
	}
	else if (f.elements[1].value == '')  // check for e-Mail address
	{
		alert('Please enter your e-Mail address.');
	}
	else if (f.elements[0].value != '' &&
    (f.elements[0].value.indexOf('@') == -1 ||
	 f.elements[0].value.indexOf('.') == -1))  // check for valid e-Mail address
	{
		alert('Please enter a valid e-Mail address in the to: address.');		
  	} else if (f.elements[1].value != '' &&
    (f.elements[1].value.indexOf('@') == -1 ||
	 f.elements[1].value.indexOf('.') == -1))  // check for valid e-Mail address
	{
		alert('Please enter a valid e-Mail address for your address.');		
  	}
  	else if (f.elements[2].value == '')  // check for comment
	{
		alert('Please enter a message.');
	}
	else
	{
		f.submit();
	}
}

var CurrentSwapColor = '';

function SwapColor (me,inout,color) {
	if (!loaded) return;
	var link = document.getElementById(me.id + 'Link');
	var doc = document.getElementById(me.id + 'Doc');
	if (inout == 'in') {
		link.style.textDecoration = 'none';
		if (doc) doc.className = 'relatedFilesActive';
	} else if (inout == 'out') {
		link.style.textDecoration = 'none';
		link.style.textDecoration = '';
		if (doc) doc.className = 'relatedFiles';
	}
}

function flyOut (me, inout) {
	if (!loaded) return;
	var baseId = me.id;
	var bodyElement = document.body;
	if (leftNavFlyOut[baseId] == null) return;
	var toFly = document.getElementById(baseId + 'Flydown');
	if (toFly) {
		if (inout == 'show') {
			show(baseId,1);
		} else if (inout == 'hide') {
			globalHide = setTimeout("hide()",500);
		}
	} else {
		var ID = baseId + 'Flydown';
		var flyContainer = document.createElement('div');
		flyContainer.setAttribute('id', ID);
		flyContainer.onmouseover =  flyOutMouseOver;
		flyContainer.onmouseout =  flyOutMouseOut;
		flyContainer.style.position = 'absolute';
		//flyContainer.style.top = (clientY -11) + 'px';
		flyContainer.style.top = (155) + 'px';
		flyContainer.style.left = '153px';
		flyContainer.style.backgroundColor = '#FFF';
		flyContainer.style.paddingTop = '8px';
		flyContainer.style.paddingLeft = '8px';
		//flyContainer.style.paddingBottom = '8px';
		flyContainer.style.border = '1px';
		flyContainer.style.borderColor = '#B2B2B2';
		flyContainer.style.borderStyle = 'solid';
		flyContainer.style.width = '153px';
		flyContainer.style.zIndex = 100;
		flyContainer.style.visibility = 'hidden';

		
		for (i in leftNavFlyOut[baseId]) {
			par = document.createElement('p');
			par.className = 'LeftNavFlyout';
			par.style.paddingBottom = '8px';
			anchor = document.createElement('a');
			anchor.setAttribute('href',leftNavFlyOut[baseId][i][1]);
			anchor.appendChild(document.createTextNode(leftNavFlyOut[baseId][i][0]));
			par.appendChild(anchor);
			flyContainer.appendChild(par);
		}
		bodyElement.appendChild(flyContainer);
		show(baseId);
	}
}

function dropOut (me, inout) {
	var baseId = me.id;
	var files = document.getElementById('relatedFiles');
	if (files == null) return;
	var toDrop = document.getElementById(baseId + 'Flydown');
	if (toDrop) {
		toDrop.style.top = (11 + clientY + scrollY) + 'px';
		toDrop.onmouseover = flyOutMouseOverDoc;
		toDrop.onmouseout = flyOutMouseOutDoc;
		if (inout == 'show') {
			showDocInfo(baseId,1);
		} else if (inout == 'hide') {
			globalHideDoc = setTimeout("hideDocInfo()",500);
		}
	}
	return true;
}

function flyOutMouseOver (e) {
	show(current,1);
}

function flyOutMouseOut (e) {
	globalHide = setTimeout("hide()",250);
}

function flyOutMouseOverDoc (e) {
	showDocInfo(current,1);
}

function flyOutMouseOutDoc (e) {
	globalHide = setTimeout("hideDocInfo()",250);
}

function setEvent (e) {
	if (!loaded) return;
	if (!e && !dom) {
		e = window.event;
		e.cancelBubble = false;
		if (document.documentElement && document.documentElement.scrollTop)
			scrollY = document.documentElement.scrollTop;
		else if (document.body)
			scrollY = document.body.scrollTop
	} else if (dom && e) {
		scrollY = window.pageYOffset;
	}
	if (!e) return;
	clientY = e.clientY;
}

/*
 *  md5.js 1.0b 27/06/96
 *
 * Javascript implementation of the RSA Data Security, Inc. MD5
 * Message-Digest Algorithm.
 *
 * Copyright (c) 1996 Henri Torgemane. All Rights Reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * and its documentation for any purposes and without
 * fee is hereby granted provided that this copyright notice
 * appears in all copies.
 *
 * Of course, this soft is provided "as is" without express or implied
 * warranty of any kind.
 *
 *
 * Modified with german comments and some information about collisions.
 * (Ralf Mieke, ralf@miekenet.de, http://mieke.home.pages.de)
 */



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 initMD5() {
        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;

 initMD5();
 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;
}

function confirmExternal(url) {
	if (!confirm("You are leaving a KPMG website and accessing a third party website. Third party web links are provided as a convenience to our users. As KPMG does not control and is not responsible for third party websites or their content, you are urged to review the terms and conditions, privacy policies, and disclaimers that appear on third party websites and govern the access and use of such third party websites.")) return;
	window.open(url);
}

function confirmExternalPL(url) {
	if (!confirm("Opuszczasz stronę internetową KPMG i przechodzisz na stronę internetową należącą do osób trzecich. Linki do stron zewnętrznych są zamieszczane dla wygody naszych użytkowników. Ponieważ KPMG nie kontroluje zawartości tych stron, ani nie odpowiada za ich treść, zachęcamy do zapoznania się z zasadami  korzystania z nich, polityką prywatności i zastrzeżeniami prawnymi, które zostały na tych stronach umieszczone.")) return;
	window.open(url);
}

function confirmExternalPL2(url) {
        if (!confirm("Opuszczasz stronę internetową kpmg.pl i przechodzisz na stronę internetową administrowaną przez osoby trzecie. Linki do stron zewnętrznych są zamieszczane dla wygody naszych użytkowników.  Zachęcamy do zapoznania się z zasadami korzystania ze strony, polityką prywatności i zastrzeżeniami prawnymi.")) return;
        window.open(url);
}


