// This code is part of the <wdss> system.
// You may not use or copy this code without explicit permission.
// Author is Eduard Gode: author@wdss.de
//  
// See: http://weitblick.net or
//      http://wdss.de


// see /js-pool/wdss/onload.js
if ( null == window.wdss_onloadHdl ) {
  window.wdss_onloadHdl = function () {
    while ( wdss_onloadHdl.stack.length ) {
      var handler = wdss_onloadHdl.stack.shift();
      handler();
    }
  };

  wdss_onloadHdl.push = function ( handler ) {
    if ( null == handler ) return;
    if ( null == window.onload || window.onload != window.wdss_onloadHdl ) {
      if ( null != window.onload ) wdss_onloadHdl.stack.push(window.onload);
      window.onload = wdss_onloadHdl;
    }
    wdss_onloadHdl.stack.push(handler);
  };

  wdss_onloadHdl.stack = [];
}


// decrypt encrypted email adresses
if ( null == window._wdss_decryptEMail ) {
  window._wdss_decryptEMail = function () {
    var nodes = document.getElementsByTagName('span');
    for ( var i = nodes.length-1; i >= 0; i-- ) {
      var node = nodes[i];
      if ( 'EncMail' == node.className ) {
	var str = node.firstChild.nodeValue;
	//node.parentNode.replaceChild(document.createTextNode(str),node);
        str = _wdss_decryptEMail.decrypt( str );
	str = str.replace( /-/g, '-<wbr />' );
	str = str.replace( /@/g, '@<wbr />' );
	node.className = '';
	node.innerHTML = str;
      }
    }

    nodes = document.getElementsByTagName('a');
    for ( var i = nodes.length-1; i >= 0; i-- ) {
      var node = nodes[i];
      if ( node.href.match(/(file:\/\/)?\/(cgi-pool\/encemail|js-pool\/wdss\/encemail.html)\?adr=(.*)/) ) {
	var str = _wdss_decryptEMail.decrypt( RegExp.$3 );
	node.href = 'mailto:'+str;
	if ( !node.hasChildNodes() ) {
	  // node.appendChild(document.createTextNode(str));
	  str = str.replace( /-/g, '-<wbr />' );
	  str = str.replace( /\./g, '.<wbr />' );
	  str = str.replace( /@/g, '@<wbr />' );
	  node.innerHTML = str;
	}
      }
    }
  };

  _wdss_decryptEMail.reverse = function (str) {
    if ( null == str ) return str;
    var n = '';
    for ( var i = str.length ; i; ) {
      i--;
      n += str.charAt(i);
    }
    return n;
  };
  _wdss_decryptEMail.decrypt = function (str) {
    if ( null != str && str.match(/([^\@]*)\@(.*)/) ) {
      str = _wdss_decryptEMail.reverse(RegExp.$1) + '@' + _wdss_decryptEMail.reverse(RegExp.$2);
    }
    return str;
  };

  wdss_onloadHdl.push(_wdss_decryptEMail);
}

