// Aktualisierung der Empfängerdaten bei Auswahl aus Adressbuch
function refreshRecipient() {
	if (document.create.addressbook) {
		var recipient = document.create.addressbook.value.split("²");
		document.create.recipname.value=recipient[0];
		document.create.recipmail.value=recipient[1];
	}
	
	// Firefox
	if (document.create.textcolor) {
		document.create.textcolor.style.backgroundColor=document.create.textcolor.value;
		document.create.bgcolor.style.backgroundColor=document.create.bgcolor.value;
	}
}


// Übernehmen eines Emoticons ins Textfeld bei Klick auf Symbol
function SetEm_o(emo) {
	document.create.text.value+=''+emo;document.create.text.focus();
}


// Dynamisches Ändern der Vorschaulinks für Effekt
function chgEffectLink(userid) {
	document.getElementsByName("linkEffect")[0].href="http://www.ecards4u.de/prv_effect.php?user="+userid+"&id="+document.create.effect.value;
}


// Dynamisches Ändern der Vorschaulinks für Song
function chgSongLink(userid) {
	document.getElementsByName("linkSong")[0].href="http://www.ecards4u.de/prv_song.php?user="+userid+"&id="+document.create.song.value;
}


// Validierung der Absender- und Empfänger-Email-Adressen und des Versanddatums
function CheckInput(f) {
	if (!validateEmail(f.recipmail,'Empfängers')) return(false);
	if (!validateEmail(f.sendermail,'Absenders')) return(false);
	for(i=0; i<f.elements.length; i++) {
		if (f.elements[i].name=='recipmail_more[]') {
			if (!validateEmail(f.elements[i],'Empfängers')) return(false);
		}
	}
	var datum=new Date();
	var Monat = new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");

	if ((parseInt(f.day.value,10)!=datum.getDate() || parseInt(f.month.value,10)!=datum.getMonth()+1 ||
		f.year.value!=datum.getFullYear()) && Date.parse(parseInt(f.day.value,10)+" "+Monat[parseInt(f.month.value,10)-1]+" "+f.year.value+" 00:00:00 GMT")>=datum.getTime() ) {
		if (confirm("Das Versanddatum der Karte wurde auf den "+f.day.value+"."+f.month.value+"."+f.year.value+" gesetzt.\n\nWenn dies korrekt ist, klicken Sie bitte auf 'OK'.\nUm das Versanddatum zu korrigieren klicken Sie bitte auf 'Abbrechen'."))
			return (true);
		else {
			f.day.focus();
			return (false);
		}
	}
	if (f.textcolor && f.textcolor.value == f.bgcolor.value) {
		alert("Sie haben als Textfarbe die gleiche Farbe wie für den Hintergrund gewählt,\nmit dieser Einstellung wäre der Kartentext nicht lesbar.\n\nBitte wählen Sie eine andere Text- oder Hintergrundfarbe!");
		return (false);
	}
	return (true);
}

// Ungültige Adresse aufrund von Tippfehlern
function checkTypo(o_email, s_email_cat, a_typo, s_advice)
{
	for (j in a_typo) {
		pattern = eval("/@" + a_typo[j] + "/i");
		if (o_email.value.match(pattern)) {
			o_email.onfocus = o_email.style.backgroundColor = "#FFCCCC";
			o_email.onblur = o_email.style.backgroundColor = "#FFCCCC";
			o_email.focus();
			alert(a_typo[j] + "-Adressen gibt es nicht! Vermutlich wollten Sie '" + s_advice + "' schreiben; bitte korrigieren Sie die Adresse des " + s_email_cat + "!\n\nBei Problemen wenden Sie sich bitte an e4u-admin@ecards4u.de!");
			return (false);
		}
	}
	return (true);
}

// Ungültige Adresse aufrund von nicht mehr aktiven Maildiensten
function checkProvider(s_provider, s_domain, s_date, o_email, s_email_cat)
{
	pattern = eval("/@" + s_domain + "/i");
	if (o_email.value.match(pattern)) {
		o_email.onfocus = o_email.style.backgroundColor = "#FFCCCC";
		o_email.onblur = o_email.style.backgroundColor = "#FFCCCC";
		o_email.focus();
		if (s_email_cat == 'Empfängers') {
			alert("Die " + s_provider + "-Adresse des Empfängers existiert nicht mehr!\n\n" + s_provider + " hat zum " + s_date + " seinen Dienst eingestellt, deshalb ist die Karte an diese Adresse nicht mehr zustellbar. Der Empfänger hat mittlerweile vermutlich einen neue Emailadresse, bitte ermitteln und verwenden Sie diese.");
			return (false);
		}
		else if (s_email_cat == 'Absenders') {
			alert("Ihre " + s_provider + "-Adresse existiert nicht mehr!\n\n" + s_provider + " hat zum " + s_date + " seinen Dienst eingestellt, deshalb können Sie diese Adresse nicht mehr als Absenderadresse verwenden, da Sendebestätigung und Ablaufbenachrichtigung Sie nicht erreichen würden. Verwenden Sie für den Versand bitte Ihre neue Adresse.");
			return (false);
		}
	}
	return (true);
}		

function validateEmail(f,n) {
		if (f.value == "") {
			alert("Bitte E-Mail-Adresse des "+n+" angeben!");
			f.onfocus = f.style.backgroundColor = "#FFCCCC";
			f.onblur = f.style.backgroundColor = "#FFCCCC";
			f.focus();
			return (false);
		}
		if (f.value.indexOf("@")==-1) {
			alert("Die E-Mail-Adresse des "+n+" ist ungültig.\n\nFehler:  '@' fehlt!");
			f.onfocus = f.style.backgroundColor = "#FFCCCC";
			f.onblur = f.style.backgroundColor = "#FFCCCC";
			f.focus();
			return (false);
		}
		if (f.value.indexOf(" ")>-1) {
			alert("Die E-Mail-Adresse des "+n+" ist ungültig.\n\nBitte Leerzeichen entfernen!");
			f.onfocus = f.style.backgroundColor = "#FFCCCC";
			f.onblur = f.style.backgroundColor = "#FFCCCC";
			f.focus();
			return (false);
		}

		if (!f.value.match(/^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]*\.)+[a-z]{2,4}$/i) && f.value!="@") {
			alert("Die E-Mail-Adresse des "+n+" ist ungültig!\n\nFehler: Format nicht korrekt.");
			f.onfocus = f.style.backgroundColor = "#FFCCCC";
			f.onblur = f.style.backgroundColor = "#FFCCCC";
			f.focus();
			return (false);
		}

		if (!checkProvider('Compuserve','compuserve\.de','31.07.2008', f, n)) {return (false);}
		
		if (!checkProvider('Lycos','lycos\.de','15.02.2009', f, n)) {return (false);}
		
		var typo = new Array('alise-dsl\.de');
		if (!checkTypo(f, n, typo, 'alice-dsl\.de')) {return (false);}
		
		var typo = new Array('ol\.com','oal\.com','oaol\.com','aool\.com','aol\.cm','qaol\.com',
							 'aolo\.com','alo\.com','aiol\.com','aqol\.com','ail\.com','a0l\.com',
							 'aal\.com');
		if (!checkTypo(f, n, typo, 'aol\.com')) {return (false);}

		var typo = new Array('aoll\.de');
		if (!checkTypo(f, n, typo, 'aol\.de')) {return (false);}

		var typo = new Array('ancor\.de','aror\.de','arcor\.com','archor\.de','acorr\.de','arcr\.de',
							 'aracor\.de','arcor\.se','arcar\.de','acor\.de','arckor\.de','acror\.de');
		if (!checkTypo(f, n, typo, 'arcor\.de')) {return (false);}

		var typo = new Array('buemail\.ch','bluemai\.ch');
		if (!checkTypo(f, n, typo, 'bluemail\.ch')) {return (false);}

		var typo = new Array('buewin\.ch','blluewin\.ch','bluewi\.ch','blkuewin\.ch','bluewein\.ch',
							 'blueiwn\.ch','bluewin\.at','bluewin\.de','bluein\.ch','biuewin\.ch',
							 'bluewien\.ch','bluewni\.ch','bluewiin\.ch','bluewim\.ch','bluewon\.ch',
							 'bluwien\.ch','bluewun\.ch','bluwewin\.ch','blouwin\.ch','bluiewin\.ch',
							 'luewin\.ch');
		if (!checkTypo(f, n, typo, 'bluewin\.ch')) {return (false);}

		var typo = new Array('chelo\.at','chello\.de');
		if (!checkTypo(f, n, typo, 'chello\.at')) {return (false);}		

		var typo = new Array('ompuserve\.de','compuserver\.de','comuserve\.de');
		if (!checkTypo(f, n, typo, 'compuserve\.de')) {return (false);}

		var typo = new Array('emil\.de');
		if (!checkTypo(f, n, typo, 'email\.de')) {return (false);}

		var typo = new Array('ewtel\.net','ewetwl\.net','ewete\.net','evetel\.net','ewetell\.net');
		if (!checkTypo(f, n, typo, 'ewetel\.net')) {return (false);}

		var typo = new Array('freeneet\.de','freener\.de','frineet\.de','freendet\.de','freneet\.de',
							 'freeenet\.de','freeent\.de','reenet\.de','freentet\.de','freenett\.de',
							 'friened\.de','frenett\.de','ffreenet\.de','frinet\.de','rreenet\.de',
							 'freebet\.de','freende\.de','feernet\.de','freenwt\.de','feeenet\.de',
							 'freennet\.de','freetnet\.de','freenent\.de','frreenet\.de','frieneet\.de',
							 'frienet\.de','freenrt\.de');
		if (!checkTypo(f, n, typo, 'freenet\.de')) {return (false);}

		var typo = new Array('gmal\.com','gmaail\.com','gemail\.com','gmial\.com','gmaial\.com',
							 'gmeil\.com','gmai\.com','gmil\.com','g\.mail\.com');
		if (!checkTypo(f, n, typo, 'gmail\.com')) {return (false);}

		var typo = new Array('goggle\.de');
		if (!checkTypo(f, n, typo, 'google\.de')) {return (false);}

		var typo = new Array('googelemail\.com','googelmail\.com','gogglemail\.com','google\.mail\.com',
							 'goolgemail\.com','gogolemail\.com','ggoglemail\.com','googemail\.com',
							 'goodlemail\.com','goglemail\.com','goooglemail\.com','goolemail\.com',
							 'googlmail\.com','googolemail\.com','googlemai\.com','googlemal\.com',
							 'googglemail\.com','ooglemail\.com','googlemaol\.com');
		if (!checkTypo(f, n, typo, 'googlemail\.com')) {return (false);}

		var typo = new Array('goolemail\.de','gogglemail\.de','googlmail\.de');
		if (!checkTypo(f, n, typo, 'googlemail\.de')) {return (false);}

		var typo = new Array('gmy\.at');
		if (!checkTypo(f, n, typo, 'gmx\.at')) {return (false);}
		
		var typo = new Array('mx\.com');
		if (!checkTypo(f, n, typo, 'gmx\.com')) {return (false);}

		var typo = new Array('gmy\.de','gmz\.de','mgx\.de','dmx\.de','bmx\.de','hmx\.de','gmbx\.de',
							 'qmx\.de','mx\.de','gm\.de');
		if (!checkTypo(f, n, typo, 'gmx\.de')) {return (false);}

		var typo = new Array('gmy\.net','ymx\.net','gx\.net','mmx\.net','gnx\.net');
		if (!checkTypo(f, n, typo, 'gmx\.net')) {return (false);}

		var typo = new Array('ispeed\.ch','hisped\.ch','highspeed\.ch','hisspeed\.ch','hispeed\.de',
							 'hispeed\.com','hsipeed\.ch');
		if (!checkTypo(f, n, typo, 'hispeed\.ch')) {return (false);}

		var typo = new Array('otmail\.com','hotamail\.com','hotmeil\.com','hormail\.com','homail\.com',
							 'hotail\.com','holtamil\.com','hotmai\.com','hotmaul\.com','hotamil\.com',
							 'motmail\.com','hotmil\.com','htomail\.com','hottmail\.com','hotmial\.com',
							 'hotmaol\.com','hotmauil\.com','hot\.mail\.com','notmail\.com','hozmail\.com',
							 'hptmail\.com','homtail\.com','hotlail\.com','hatmail\.com','hoitmail\.com',
							 'hotmaill\.com','omail\.com','qhotmail\.com');
		if (!checkTypo(f, n, typo, 'hotmail\.com')) {return (false);}

		var typo = new Array('otmail\.de','hotamail\.de','hotmeil\.de','hormail\.de','hotmali\.de',
							 'homail\.de','motmail\.de','hotmil\.de','htmail\.de','htomail\.de',
							 'hotamil\.de','hotmaill\.de','hotmaile\.de','hotail\.de','hotmsil\.de',
							 'hotmai\.de','hutmail\.de','holmail\.de','hozmail\.de','hotmel\.de',
							 'hotmails\.de','homtail\.de','hotmiel\.de');
		if (!checkTypo(f, n, typo, 'hotmail\.de')) {return (false);}

		var typo = new Array('kabelw\.de');
		if (!checkTypo(f, n, typo, 'kabelbw\.de')) {return (false);}
		
		var typo = new Array('ive\.de');
		if (!checkTypo(f, n, typo, 'live\.de')) {return (false);}
		
		var typo = new Array('ail\.ru');
		if (!checkTypo(f, n, typo, 'mail\.ru')) {return (false);}

		var typo = new Array('mns\.com');
		if (!checkTypo(f, n, typo, 'msn\.com')) {return (false);}

		var typo = new Array('netcogne\.de','netcolongne\.de','netcologene\.de','netcolohne\.de',
							 'netcologn\.de','necologne\.de','netkologne\.de','netcoogne\.de');
		if (!checkTypo(f, n, typo, 'netcologne\.de')) {return (false);}

		var typo = new Array('onine\.de','onlinne\.de','onlein\.de','onlline\.de','onlinw\.de',
							 'onleine\.de','oniline\.de','onlind\.de','onlione\.de');
		if (!checkTypo(f, n, typo, 'online\.de')) {return (false);}

		var typo = new Array('onlinehom\.de','online\.home\.de','t-onlinehome\.de','onlinhome\.de');
		if (!checkTypo(f, n, typo, 'onlinehome\.de')) {return (false);}
		
		var typo = new Array('rockemail\.com','rocketnail.com','ocketmail\.com');
		if (!checkTypo(f, n, typo, 'rocketmail\.com')) {return (false);}
		
		var typo = new Array('unrise\.ch','sunise\.ch','sunrice\.ch');
		if (!checkTypo(f, n, typo, 'sunrise\.ch')) {return (false);}

		var typo = new Array('t-inline\.de','t-oneline\.de','t-omline\.de','t-olnine\.de','t-onlie\.de',
							 'tonline\.de','t-pnline\.de','t-onliene\.de','o-online\.de','t-tonline\.de',
							 't-nline\.de','t-onlune\.de','t-oniline\.de','t-onlone\.de','t-onlind\.de',
							 't-oline\.de','t-onlne\.de','tt-online\.de','t-onlinr\.de','t-onlins\.de',
							 't-onlline\.de','t-onlein\.de','t-onlinie\.de','t-onleine\.de','t-obline\.de',
							 't-on-line\.de','t-oonline\.de','t-line\.de','t-0nline\.de','t--online\.de',
							 'ttonline\.de','d-online\.de','t-onile\.de','t-onlinne\.de','t-olnline\.de',
							 't-noline\.de','t-onliner\.de','t-onoine\.de','t-onliine\.de','t-onlaine\.de',
							 't-onloine\.de','tomline\.de','toneline\.de','tonlein\.de','t-onlione\.de',
							 'tionline\.de','te-online\.de','teonline\.de','t-onlime\.de','t-ponline\.de',
							 't-onlinde\.de','t-onlinee\.de','t-onlilne\.de','tonlne\.de','tonlien\.de',
							 't-onine\.de','tonlie\.de','e-online\.de','t-onlain\.de','t-onlyne\.de',
							 't-onilne\.de');
		if (!checkTypo(f, n, typo, 't-online\.de')) {return (false);}

		var typo = new Array('tele\.de','lele2\.de','ele2\.de');
		if (!checkTypo(f, n, typo, 'tele2\.de')) {return (false);}

		var typo = new Array('tiscal\.de','iscali\.de','tiscalli\.de','ticali\.de');
		if (!checkTypo(f, n, typo, 'tiscali\.de')) {return (false);}
		
		var typo = new Array('tiscalli\.co\.uk','ticali\.co\.uk');
		if (!checkTypo(f, n, typo, 'tiscali\.co\.uk')) {return (false);}

		var typo = new Array('vodafon\.com');
		if (!checkTypo(f, n, typo, 'vodafone\.com')) {return (false);}

		var typo = new Array('vadafone\.de','odafone\.de');
		if (!checkTypo(f, n, typo, 'vodafone\.de')) {return (false);}
		
		var typo = new Array('wersanet\.de','vesanet\.de');
		if (!checkTypo(f, n, typo, 'versanet\.de')) {return (false);}

		var typo = new Array('wewb\.de','qweb\.de','eb\.de','wb\.de');
		if (!checkTypo(f, n, typo, 'web\.de')) {return (false);}

		var typo = new Array('widowslive\.com','windowslife\.com');
		if (!checkTypo(f, n, typo, 'windowslive\.com')) {return (false);}

		var typo = new Array('yaho\.com','yahaoo\.com','yahoio\.com','yhaoo\.com','zahoo\.com',
							 'ahoo\.com','yahhoo\.com','yohoo\.com','yhoo\.com','yagoo\.com',
							 'yahho\.com','ayhoo\.com','yaoo\.com');
		if (!checkTypo(f, n, typo, 'yahoo\.com')) {return (false);}

		var typo = new Array('yaho\.de','yahaoo\.de','yahoio\.de','yhaoo\.de','zahoo\.de',
							 'yagoo\.de','yahhoo\.de','yaoo\.de','yahooo\.de','yohoo\.de',
							 'yayhoo\.de','jahoo\.de','vahoo\.de','yahool\.de','yahou\.de',
							 'yaohoo\.de','yahao\.de','jaho\.de','yah00\.de','yaqhoo\.de',
							 'yqahoo\.de','yxahoo\.de','jaaho\.de','hahoo\.de','ahoo\.de',
							 'yyahoo\.de');
		if (!checkTypo(f, n, typo, 'yahoo\.de')) {return (false);}	

		return(true);
}

// Funktionen für mehrere Empfängerfelder
var max_recipients = 20;
var now_recipients = 1;

function $(id)
{
  return document.getElementById(id);
}

function addRecipient(vN,vM,rY,nB)
{
	if (now_recipients < max_recipients)
	{
		var tr = document.createElement("tr");
		var tab = $("rec_tab");

		now_recipients++;

		tr.appendChild(_td(_text(now_recipients+"."),"right"));
		tr.appendChild(_td(_text("Name:")));
		tr.appendChild(_td(_input("text","recipname_more[]","",vN,rY,120,11)));
		tr.appendChild(_td(_text("E-Mail:")));
		tr.appendChild(_td(_input("text","recipmail_more[]","",vM,rY,180,11)));

		tab.appendChild(tr);

		if (now_recipients > 1)
		{
			if (nB)
			{
				$("btn_del_rec").style.display = "block";
				$("btn_delall_rec").style.display = "block";
			}
		}
		$("rec_span").innerHTML = now_recipients+" von "+max_recipients;
	}

	if (now_recipients+1 > max_recipients)
	{
		if (nB) $("btn_add_rec").disabled = true;
	}
}

function delRecipient()
{
	if (now_recipients > 1)
	{
		var tab = $("rec_tab");
		var row = tab.getElementsByTagName("tr");
		var node = row[row.length-1].firstChild;
		var cell = row[row.length-1].getElementsByTagName("td");

		now_recipients--;

		while (cell.length)
		{
			cell = row[row.length-1].getElementsByTagName("td")

			if (cell.length)
			{
				row[row.length-1].removeChild(node);
				node = row[row.length-1].firstChild;
			}
		}
		tab.removeChild(tab.lastChild);
		$("rec_span").innerHTML = now_recipients+" von "+max_recipients;
	}

	if (now_recipients == 1)
	{
		$("btn_del_rec").style.display = "none";
		$("btn_delall_rec").style.display = "none";
		$("rec_span").innerHTML = '';
	}

	if (now_recipients < max_recipients)
	{
		$("btn_add_rec").disabled = false;
	}
}

function delAllRecipients()
{
	var anz = now_recipients;

	if (confirm("Wollen Sie wirklich alle zusätzlichen Empfänger entfernen?"))
	{
		for (var i=0; i<anz; i++)
		{
			delRecipient();
		}

	}
}

function _td(data,a)
{
	var td = document.createElement("td");
		if (a)
		{
			td.setAttribute("align",a);
		}
		td.appendChild(data);

	return td;
}

function _input(t,n,c,v,r,w,h)
{
	var input = document.createElement("input");
		input.setAttribute("type",t);
		input.setAttribute("name",n);
		input.setAttribute(browserRelated("class","className"),c);
		if (v != "")
		{
			input.setAttribute("value",v);
			if (r) input.setAttribute("readonly","readonly");
		}
		if (w != "")
		{
			input.style.width=w;
		}
		if (h != "")
		{
			input.style.fontSize=h+"px";
		}
	return input;
}

function _text(t)
{
	var txt = document.createTextNode(t);

	return txt;
}

function browserRelated(ff,ie)
{
	if (isIE()) return ie;
	else return ff;
}

function isIE()
{
	var n = navigator.userAgent.toLowerCase();
	var v = parseInt(navigator.appVersion);

	if ((n.indexOf("msie") != -1) && (n.indexOf("opera") == -1))
	{
		return true;
	}

	return false;
}