var base64chars = '0123456789:;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split("");
var base64inv = new Array(256); for(var i=0;i<base64chars.length;i++){base64inv[base64chars[i].charCodeAt(0)] = i;}

/*$(function(){$('a[href^=mailto:]').each(function(i) {
	var xr = this.href.match(/^mailto:([A-Za-z0-9:;+=]+)$/);
	var k = 223 & 255;
	if(!xr) return;
	var s = xr[1];
	var a = new Array();
	var p = (s.charAt(s.length-1) == '+' ? (s.charAt(s.length-2) == '+' ? 'AA' : 'A') : '');
	var r = '';
	s = s.substr(0, s.length - p.length) + p;
	for (var c = 0; c <s.length; c += 4) {
		var n = (base64inv[s.charCodeAt(c)] << 18) + base64inv[s.charCodeAt(c+3)] +
			(base64inv[s.charCodeAt(c+1)] << 12) + (base64inv[s.charCodeAt(c+2)] << 6);
		//a.push((n >>> 16) & 255, (n >>> 8) & 255, n & 255);
		r += String.fromCharCode((n >>> 16) & 255, (n >>> 8) & 255, n & 255);
	}
	//if(p.length >= 1) { a.pop();}
	//if(p.length == 2) { a.pop();}
	//var x = new Array(112,97,119,101,108,64,111,110,101,116,46,112,108);
	var b = 0;
	s = '';
	//for(var i=0;i<a.length;i++) {
	//	s += String.fromCharCode(b ^= a[i]^k);
	//}
	xr = r.split(/\|/);
	this.href = 'mailto:' + xr[0];
	if(xr.length > 1) $(this).html(xr[1]);
});});
*/

//Decoding email address
$(function(){$('a[href^=mailto:]').each(function(i) {
	var xr = this.href.match(/^mailto:([A-Za-z0-9:;+=]+)$/);
    var test = xr;
	var k = 223 & 255;
	if(!xr) return;
	var s = xr[1];
	var a = new Array();
	var p = (s.charAt(s.length-1) == '+' ? (s.charAt(s.length-2) == '+' ? 'AA' : 'A') : '');
	var r = '';
	s = s.substr(0, s.length - p.length) + p;
	for (var c = 0; c <s.length; c += 4) {
		var n = (base64inv[s.charCodeAt(c)] << 18) + base64inv[s.charCodeAt(c+3)] +
			(base64inv[s.charCodeAt(c+1)] << 12) + (base64inv[s.charCodeAt(c+2)] << 6);
		//a.push((n >>> 16) & 255, (n >>> 8) & 255, n & 255);
		r += String.fromCharCode((n >>> 16) & 255, (n >>> 8) & 255, n & 255);
	}
	//if(p.length >= 1) { a.pop();}
	//if(p.length == 2) { a.pop();}
	//var x = new Array(112,97,119,101,108,64,111,110,101,116,46,112,108);
	var b = 0;
	s = '';
	//for(var i=0;i<a.length;i++) {
	//	s += String.fromCharCode(b ^= a[i]^k);
	//}
	xr = r.split(/\|/);
    this.href = 'mailto:' + xr[0];
	if(xr.length > 1) $(this).html(xr[1]);
});});

//Encoding email address
/*$(function(){$('a[href^=mailto:]').each(function(i) {
	var xr = this.href.match(/^mailto:\w+([\.-]?\w+)*@\w+([\.-]?\w+)*\.(\w{2}|(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum))$/);
	//-----------------------------------------------------------------------------------------------------
	var r = "";
	var p = ""; 
	var d = xr[0].split(":");
	var s = d[1];
	var c = s.length % 3;
 
  // add a right zero pad to make this string a multiple of 3 characters
  if (c > 0) { 
    for (; c < 3; c++) { 
      p += '='; 
      s += "\0"; 
    } 
  }
  // increment over the length of the string, three characters at a time
  for (c = 0; c < s.length; c += 3) {
    // we add newlines after every 76 output characters, according to the MIME specs
    if (c > 0 && (c / 3 * 4) % 76 == 0) { 
      r += "\r\n"; 
    }
    // these three 8-bit (ASCII) characters become one 24-bit number
    var n = (s.charCodeAt(c) << 16) + (s.charCodeAt(c+1) << 8) + s.charCodeAt(c+2);
    // this 24-bit number gets separated into four 6-bit numbers
    n = [(n >>> 18) & 63, (n >>> 12) & 63, (n >>> 6) & 63, n & 63];
    // those four 6-bit numbers are used as indices into the base64 character list
    r += base64chars[n[0]] + base64chars[n[1]] + base64chars[n[2]] + base64chars[n[3]];
  }
   // add the actual padding string, after removing the zero pad
  //return r.substring(0, r.length - p.length) + p;
  //--------------------------------------------------------------------------
	this.href = 'mailto:' + r.substring(0, r.length - p.length) + p;;
});});
*/
// Random encryption key feature by Andrew Moulden, Site Engineering Ltd
// This code is freeware provided these four comment lines remain intact
// A wizard to generate this code is at http://www.jottings.com/obfuscator/

$(function(){
  $('div.toggle-show').each(function(i){
    $this = $(this);
    $this.wrapInner('<div></div>').children().hide().end()
      .prepend('<a class="hide" href="javascript:void(0);">'+$this.attr('title')+'</a>')
      .attr('title', '')
      .children(':first').click(function(){
        $(this).toggleClass('hide').siblings().slideToggle('normal');
      });
  });
});

