// Replaces text with by in string
function replaceText(string,text,by) {

	var strLength = string.length, txtLength = text.length;
	
	if ((strLength == 0) || (txtLength == 0)) {
		return string;
	}
	
	var i = string.indexOf(text);

	if ((!i) && (text != string.substring(0,txtLength))) {
		return string;
	}
	
	if (i == -1) {
		return string;
	}

	var newstr = string.substring(0,i) + by;

	if (i+txtLength < strLength){
		newstr += replaceText(string.substring(i+txtLength,strLength),text,by);
	}
	
	return newstr;
}

// Funktio posti(a, b, c, d, e)
//
// Piilottaa sähköpostiosoitteen spammiroboteilta.
// Esim posti('Elvis', 'presley', 1, 'Graceland', 'com')
// paluttaa mailto- osoitteen muodossa
// <a href="mailto:elvis.presley@domain.suffix">Elvis Presley</a>
// Vaihtaa ääkköset ä -> a   ö -> o   å -> a
// Kirjoittaa ensimäiset kirjaimet näkyvään nimeen isolla.
// Jos sähköposti pelkällä etunimellä, kutsu posti('Elvis', 1, 'Graceland', 'com')
// Vaihda oletusdomain ja jälkiliite kohdalleen.
//
// kutsu posti(a, b, c, d, e)
// jossa a = etunimi
//       b = sukunimi 
//       c = 1 eli annetaan domain
//       d = domain
//       e = jälkiliite
//
// tai   a = nimi
//       b = 1 eli annetaan domain
//       c = domain
//       d = jälkiliite
//
// tai   a = etunimi
//       b = sukunimi
//
// tai   a = nimi
//
// Copyright © Esa Hietala
// Oulun Laatumikro




function posti(a, b, c, d, e){
	if (!a){
		return;
	}
	var DefaultDomain='sokerijussi';
	var DefaultSuffix='net';

	if ((b!=1)&&(c!=1)){
		var Domain=DefaultDomain;
		var Suffix=DefaultSuffix;
	}
      else{
      	if (b==1){
      		if (!c){
      			var Domain=DefaultDomain;
      		}
      		if (!d){
      			var Suffix=DefaultSuffix;
      		}
      		if (c){
      			var Domain=c.toLowerCase();
      			Domain = replaceText(Domain,'ä','a');
      			Domain = replaceText(Domain,'ö','o');
      			Domain = replaceText(Domain,'å','a');
      		}
      		if (d){
      			var Suffix=d.toLowerCase();
      			Suffix = replaceText(Suffix,'ä','a');
      			Suffix = replaceText(Suffix,'ö','o');
      			Suffix = replaceText(Suffix,'å','a');
      		}
      	}
      	if (c==1){
      		if (!d){
      			var Domain=DefaultDomain;
      		}
      		if (!e){
      			var Suffix=DefaultSuffix;
      		}
      		if (d){
      			var Domain=d.toLowerCase();
      			Domain = replaceText(Domain,'ä','a');
      			Domain = replaceText(Domain,'ö','o');
      			Domain = replaceText(Domain,'å','a');
      		}
      		if (e){
      			var Suffix=e.toLowerCase();
      			Suffix = replaceText(Suffix,'ä','a');
      			Suffix = replaceText(Suffix,'ö','o');
      			Suffix = replaceText(Suffix,'å','a');
      		}
      	}
      }

	var etu = a.toLowerCase();
	if ((b)&&(b!=1)){
		var suku = b.toLowerCase();
	}
	var nimi='';
	//var text='<a class=\"mail_on_black\" href="mailto:';
	var text='<a href="mailto:';
	var address='';
	if ((b)&&(b!=1)){
		var firstLetter = etu.substring(0, 1).toUpperCase();
		var restOfWord = etu.substring(1, etu.length).toLowerCase();
		nimi += firstLetter + restOfWord;
		nimi += ' ';
		firstLetter = suku.substring(0, 1).toUpperCase();
		restOfWord = suku.substring(1, suku.length).toLowerCase();
		nimi += firstLetter + restOfWord;
		etu = replaceText(etu,'ä','a');
		etu = replaceText(etu,'ö','o');
		etu = replaceText(etu,'å','a');
		suku = replaceText(suku,'ä','a');
		suku = replaceText(suku,'ö','o');
		suku = replaceText(suku,'å','a');
		address += etu;
		address += '.';
		address += suku;
		address += '@';
		address += Domain;
		address += '.';
		address += Suffix;
	}
	else{
		var firstLetter = etu.substring(0, 1).toUpperCase();
		var restOfWord = etu.substring(1, etu.length).toLowerCase();
		nimi += firstLetter + restOfWord;
		etu = replaceText(etu,'ä','a');
		etu = replaceText(etu,'ö','o');
		etu = replaceText(etu,'å','a');
		address += etu;
		address += '@';
		address += Domain;
		address += '.';
		address += Suffix;
	}
	text += hide(address);
	text += '">';
	text += hide(address);
	text += '</a>';
    //alert(text);
	document.write(text);
    
}

function hide(text){
    var to=new Array("&#097;","&#098;","&#099;","&#100;","&#101;","&#102;","&#103;","&#104;","&#105;","&#106;","&#107;","&#108;","&#109;","&#110;","&#111;","&#112;","&#113;","&#114;","&#115;","&#116;","&#117;","&#118;","&#119;","&#120;","&#121;","&#122;");
    var from=new Array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z");
    var randomnumber;
    for (i=0;i<10;i++){
        randomnumber=Math.floor(Math.random()*from.length);
        text=replaceText(text,from[randomnumber],to[randomnumber]);
    }
    text=replaceText(text,"@","&#064;");
    text=replaceText(text,".","&#046;");
    return text;
}
