var urlIcons = "http://www.greektown.eu/gt/german/community/register/"
var urlOK = urlIcons + 'ok.gif';
var urlWarn = urlIcons + 'exclamation.gif';
var timeout;
var fields = {
	'firstname'		: [1, "Vorname: Dieser ist auf GreekTown f&uuml;r andere Mitglieder nicht sichtbar."],
	'surname'		: [1, "Nachname:  Dieser ist auf GreekTown fuer andere Mitglieder nicht sichtbar."],
	'sex'			: [1, "Geschlecht: Bitte waehle hier Dein Geschlecht aus.<br/>Diese Daten sind spaeter nicht mehr aenderbar."],
	'date'			: [1, "Geburtstag: Einige Einstellungen und Anzeigen bei GreekTown sind altersabhaengig.<br/>Diese Daten sind spaeter nicht mehr aenderbar."],
	'country_id'	: [1, "Land: Bitte hier dein Land auswaehlen."],
	'zipcode'		: [1, "Postleitzahl: Diese Angabe ist zur Berechnung von Entfernungen innerhalb DE notwendig."],
	'city'			: [1, "Wohnort: Der Wohnort, welcher in Deinem Profil angezeigt wird. Dieser kann vom richtigen Ortsnamen abweichen."],
	'reg_username'	: [1, "Username: Diese Angabe kann nicht mehr geaendert werden. Nicht erlaubt sind: Prominente Namen, geschuetzte Marken.<br/>Diese Daten sind spaeter nicht mehr aenderbar."],
	'email'			: [1, "E-Mail: Diese kann nicht mehr geaendert werden. Nach der Registrierung erhaelst Du per Email einen Aktivierungslink zugesendet."],
	'email2'		: [1, "E-Mail: Bitte wiederhole zur Sicherheit nochmal Deine E-Mail-Adresse."],
	'password'		: [2, 'Um Dein Passwort moeglichst sicher zu machen, sollte es moeglichst vielen dieser Kriterien entsprechen:' +
					'<table><tr><td><img id="pw_length" src="' + urlWarn + '"/></td><td>Es ist laenger als 6 Zeichen</td></tr><tr><td><img id="pw_username" src="' + urlWarn + '"/></td><td>Es ist kein Teil des Usernamens oder umgekehrt</td></tr><tr><td><img id="pw_case" src="' + urlWarn + '"/></td><td>Es enthaelt Zahlen oder Groß- und Kleinschreibung</td></tr>' +
					'<tr><td><img id="pw_specialchar" src="' + urlWarn + '"/></td><td>Es enthaelt Sonderzeichen</td></tr></table>'],
	'password_2'	: [2, "Passwort-Bestaetigung: Bestaetige hier Dein eingegebenes Passwort."],
	'vvc'			: [2, 'Visuelle Bestaetigung: ' +
					'Bitte trage zur Bestaetigung die dargestellte Zeichenfolge in das Eingabefeld ein. Dies ist eine Maßnahme, um automatisierte Registrierungen zu verhindern.' +
					'<p>Falls Du den Code nicht entziffern kannst, <a href=\'\' onclick=\'$(\"#img_vvc\").src(\"vc.asp?new=\" + (Math.random() * 1000));return false;\'>klicke hier</a> fuer einen neuen Code.</p>' +
					'Die Beschreibung von Captcha findest du bei <a href="http://de.wikipedia.org/wiki/Captcha" target="_blank" class="offsite">Wikipedia</a>.'],
	'secret_q'		: [2, "Geheime Frage: Hilft uns, Dich im Falle von Problemen (Username und Passwort vergessen) als den korrekten Benutzer wieder zu erkennen."],
	'secret_a'		: [2, "Antwort: Gebe hier die Antwort auf die ausgewaehlte Frage ein."]
};

function checkField(id, value) {
	var output="";
	var url;
	switch (id) {
		case 'zipcode':
		case 'country_id':
			url = "/gt/german/community/register/ajax_register.asp?param=locale&country_id=" + $('#country_id').val() + "&zipcode=" + $('#zipcode').val();
			break;
		case 'date':
			url = "/gt/german/community/register/ajax_register.asp?param=date&day=" + $('#day').val() + "&month=" + $('#month').val() + "&year=" + $('#year').val();
			break;
		case 'password_2':
			url = "/gt/german/community/register/ajax_register.asp?param=password&pass=" + $('#password').val() + "&pass2=" + $('#password_2').val();
			break;
		case 'email':
			url = "/gt/german/community/register/ajax_register.asp?param=mail&email=" + $('#email').val() + "&email2=" + $('#email2').val();
			break;
		default:
			url = "/gt/german/community/register/ajax_register.asp?param=" + id + "&value=" + value;
	}

	var hintDiv = '#hint' + fields[id][0];
	if(timeout) {
		clearTimeout(timeout);
	}
	timeout= window.setTimeout(function(){
	$.get(url, function(data){
		resetHint();
	 	switch(id) {
			case "date":
	 			$("#day").addClass("regError");
	 			$("#month").addClass("regError");
	 			$("#year").addClass("regError");
	 			$("#day_ok").remove();
	 		break;
	 		case "email":
	 			$("#email").addClass("regError");
	 			$("#email2").addClass("regError");
	 			$("#email2_ok").remove();
	 			$("#email_ok").remove();
	 		break;
	 		case "password":
	 		case "password_2":
	 			$("#password").addClass("regError");
	 			$("#password_2").addClass("regError");
	 			$("#password_ok").remove();
	 			$("#password_2_ok").remove();
	 		break;
	 		default:
			 	$("#" + id).removeClass("regError");
			 	$("#" + id + "_ok").remove();
	 	}
	 	data = eval('(' + data + ')');
	 	if (data.info) {
	 		if (id != 'date') {
		 		output = data.info;
		 		$(hintDiv).addClass("msgboxInfo");
	 			$("#"+id).addClass("regError");
	 		}
	 		else {
	 			$("#regAge").html("<h4>Du bist wohl "+data.info+" Jahre alt.");
	 			$("#day").removeClass("regError");
 				$("#month").removeClass("regError");
 				$("#year").removeClass("regError");
	 		}
	 	}
	 	if (data.error) {
	 		output = data.error;
	 		$(hintDiv).addClass("msgboxError");
	 		if (id == "reg_username") {
	 			$("#regUsername").html("");
	 		}
	 		if (id == 'date') {
	 			$("#regAge").html("");
	 		}
	 		else {
		 		$("#" + id).addClass("regError");
	 		}
	 	}
	 	else if (data.query == 'city') {
 			$("#country_id_ok").remove();
 			$("#zipcode_ok").remove();
 			$("#city_ok").remove();
 			$("#country_id").removeClass("regError");
 			$("#zipcode").removeClass("regError");
 			$("#city").removeClass("regError");
 			if (data.exec) {
 				eval(data.exec);
 			}
 			if (data.country_id == 'XX') {
	 			$("#country_id").parent().append('<img src="' + urlOK + '" class="regOK" border="0" id="country_id_ok" />');
	 			$("#zipcode").parent().append('<img src="' + urlOK + '" class="regOK" border="0" id="zipcode_ok" />');
		 		$('#city_id').val(0);
	 			$('#city_db').html("&nbsp;");
 			}
 			else {
	 			//City found
		 		if (data.city_id > 0) {
			 		$('#city_id').val(data.city_id);
		 			$('#city').val(data.city);
		 			$('#city_db').html(data.city);
		 			$("#country_id").parent().append('<img src="' + urlOK + '" class="regOK" border="0" id="country_id_ok" />');
		 			$("#zipcode").parent().append('<img src="' + urlOK + '" class="regOK" border="0" id="zipcode_ok" />');
		 			$("#city").parent().append('<img src="' + urlOK + '" class="regOK" border="0" id="city_ok" />');
		 		}
		 		//Not found
		 		else if (data.city_id == -1) {
			 		$('#city_id').val(0);
		 			$('#city_db').html("&nbsp;");
		 			$("#hint1").addClass("msgboxError");
		 			$("#country_id").addClass("regError");
		 			$("#zipcode").addClass("regError");
		 			$("#city").addClass("regError");
		 		}
 			}
	 	}
	 	else {
	 		if(!value || value.length > 0) {
	 			switch(id) {
	 				case "date":
				 		$("#day").removeClass("regError");
			 			$("#month").removeClass("regError");
			 			$("#year").removeClass("regError");
			 			var span = '<img src="' + urlOK + '" class="regOK" border="0" id="day_ok" />';
		 				$("#"+id).parent().append(span);
			 		break;
	 				case "email":
	 				case "email2":
	 					$("#email").removeClass("regError");
	 					$("#email2").removeClass("regError");
		 				var span = '<img src="' + urlOK + '" class="regOK" border="0" id="email_ok" />';
		 				$("#email").parent().append(span);
		 				var span = '<img src="' + urlOK + '" class="regOK" border="0" id="email2_ok" />';
		 				$("#email2").parent().append(span);
		 			break;
		 			case "reg_username":
		 				$("#regUsername").html("<h4>Dein Username lautet also "+value+"</h4>");
		 				var span = '<img src="' + urlOK + '" class="regOK" border="0" id="'+id+'_ok" />';
	 					$("#"+id).parent().append(span);
		 			break;
		 			case "password":
		 			case "password_2":
		 				$("#password").removeClass("regError");
	 					$("#password_2").removeClass("regError");
		 				var span = '<img src="' + urlOK + '" class="regOK" border="0" id="password_ok" />';
		 				$("#password").parent().append(span);
		 				var span = '<img src="' + urlOK + '" class="regOK" border="0" id="password_2_ok" />';
		 				$("#password_2").parent().append(span);
		 			break;
	 				default:
	 					var span = '<img src="' + urlOK + '" class="regOK" border="0" id="'+id+'_ok" />';
	 					$("#"+id).parent().append(span);
	 			}
	 		}
	 	}
 		checkOKFlags();
		$(hintDiv).html(output);
  });
	},300);
}

function resetHint() {
	$('#hint1').html("");
	$('#hint1').removeClass("msgboxInfo");
	$('#hint1').removeClass("msgboxError");
	$('#hint2').html("");
	$('#hint2').removeClass("msgboxInfo");
	$('#hint2').removeClass("msgboxError");
}

function showToolTipp(id) {
	resetHint();
	$("#hint" + fields[id][0]).addClass("msgboxInfo").css("width","300px").html(fields[id][1]);
	var fi = document.getElementById(id);
	var fipos = jQuery.iUtil.getPosition(fi);
	var ohHi = document.getElementById("ohHint" + fields[id][0]);
	var oHipos = jQuery.iUtil.getPosition(ohHi);
	var tPos, lPos, mgin;
	tPos = fipos.y - oHipos.y;
	if(id=="reg_username") {
		tPos = tPos-50;
	}
	mgin = tPos+"px 0 0 0";
	$("#hint" + fields[id][0]).css("margin", mgin);
}

function verifyData(reload, mobile) {
	var params = {};
	var url = mobile ? "/registrieren/ajax_mobile.asp" : "/gt/german/community/register/ajax_register.asp";
	$('#step').find("input[@type='text'], input[@type='password'],input[@type='hidden'],  option[@selected], select, input[@type='checkbox']")
		.filter(":enabled")
		.each(function() {
				params[ this.name || this.parentNode.name || this.parentNode.id ] = this.value;
		});
	$.post(url, params, function(data){
		if (data) {
			$('#hint1').css({marginTop: "0px"});
			data = eval('(' + data + ')');
			$("input").removeClass("regError");
			$("select").removeClass("regError");
			$("#vvc").hide();
			$("select, input[@type='text'], input[@type='password']").each(function() {
				if (!$("#"+this.id+"_ok").id() && this.id != "month" && this.id != "year") {
					if ((this.id=="firstname" ||this.id=="surname") && $(this).val().length>2) {
						var span = '<img src="' + urlOK + '" class="regOK" border="0" id="'+this.id+'_ok" />';
						$(this).parent().append(span);
					}
					else if(this.id != "firstname" && this.id != "surname") {
						var span = '<img src="' + urlOK + '" class="regOK" border="0" id="'+this.id+'_ok" />';
						$(this).parent().append(span);
					}
				}
			});

			if (data.error) {
				$("#hint1").addClass("msgboxError");
				$("#hint1").html(data.error);
				if (data.errFields) {
					for(i=0; i<data.errFields.length; i++) {
						if (data.errFields[i] == "vvc") {
							$("#vvc").show();
							$("#img_vvc").src('vc.asp');
						}
						$("#"+data.errFields[i]+"_ok").remove();
						$('#'+data.errFields[i]).addClass("regError");
					}
				}
				$('#step').find("input[@type='text'], input[@type='password'],input[@type='hidden'],  option[@selected], input[@type='submit'], select, input[@type='checkbox']")
					.each(function() {
							this.disabled = false;
					});
				document.location.href = "#top";
			}
			if ((data.success) == 1 && reload) {
				document.location.href="/gt/german/community/funktionen/login.asp?action=register&username="+data.username ;
				return false;
			}
			checkOKFlags();
		}
	});
}


function checkMark(id, len) {
	var span = '<img src="' + urlOK + '" class="regOK" border="0" id="'+id+'_ok" />';
	$("#"+id+"_ok").remove();
	$("#"+id).addClass('regError');
	if (id == "sex" && $("#"+id).val() == 0) {
		$("#regSex").html("");
	}
	if (!$("#"+id+"_ok").id()) {
		if ((id == "sex" || id =="secret_q") && $("#"+id).val()>0) {
			$("#"+id).parent().append(span);
			$("#"+id).removeClass('regError');
			if (id == "sex" && $("#"+id).val() == 1) {
				$("#regSex").html("<h4>Du bist anscheinend eine Dame.</h4>");
			}
			else if (id == "sex" && $("#"+id).val() == 2) {
				$("#regSex").html("<h4>Du bist anscheinend ein Mann.</h4>");
			}
		}
		else {
			if ($("#"+id).val().length > len) {
				$("#"+id).removeClass('regError');
				$("#"+id).parent().append(span);
			}
			else if($("#"+id).val().length == 0) {
				$("#"+id).removeClass('regError');
			}
		}
	}
	checkOKFlags();
}

function checkOKFlags() {
	var errors = 0;
	$(document).find(".regError").each(function() {
		errors++;
	});

	/*
 	if (errors == 0 && $("#accept").val()==1) {
		$("#submit").removeAttr("disabled");
	}
	else {
		$("#submit").attr("disabled","disabled");
	}
	*/
}

function checkFlag(id) {
	if ($("#"+id).val() == 0) {
		$("#"+id).val(1)
		$("#"+id).removeClass("regError");
	}
	else {
		$("#"+id).val(0)
		$("#"+id).addClass("regError");
	}
	window.setTimeout(function(){checkOKFlags();}, 200);
}

function setCity(zipcode, city, city_id) {
	$("#city, #zipcode","#country_id").removeClass("regError");
	$("#city_ok, #zipcode_ok").remove();
	$("#city_id").val(city_id);
	$("#zipcode").val(zipcode);
	$("#city").val(city);
	$("#city_db").html(city);
	$("#city").parent().append("<span id='city_ok' class='regOK'><img src=\"" + urlOK + "\" class=\"regOK\" border=\"0\" /></span>");
	$("#zipcode").parent().append("<span id='zipcode_ok' class='regOK'><img src=\"" + urlOK + "\" class=\"regOK\" border=\"0\" /></span>");
	if (!$('#country_id_ok').html()) {
		$("#country_id").parent().append("<span id='country_id_ok' class='regOK'><img src=\"" + urlOK + "\" class=\"regOK\" border=\"0\" /></span>");
	}
	//Set Session
	$.get("/gt/german/community/register/ajax_register.asp?param=locale&country_id=" + $('#country_id').val() + "&zipcode=" + zipcode + "&city_id=" + city_id, function() {});
}

function checkPasswordPolicy(username, password) {
	username = username.toLowerCase();

	if (password.length > 6) {
		$("#pw_length").attr("src", urlOK);
	}
	else {
		$("#pw_length").attr("src", urlWarn);
	}
	if (password.toLowerCase().indexOf(username) == -1 && username.indexOf(password.toLowerCase()) == -1) {
		$("#pw_username").attr("src", urlOK);
	}
	else {
		$("#pw_username").attr("src", urlWarn);
	}
	var score = 0;
	if (password.match(/[a-z]+/)) {
		score++;
	}
	if (password.match(/[A-Z]+/)) {
		score++;
	}
	if (password.match(/[0-9]+/)) {
		score++;
	}
	if (score > 1) {
		$("#pw_case").attr("src", urlOK);
	}
	else {
		$("#pw_case").attr("src", urlWarn);
	}

	if (password.match(/['!"�$%&\/()=;:,.���+*���]+/)) {
		$("#pw_specialchar").attr("src", urlOK);
	}
	else {
		$("#pw_specialchar").attr("src", urlWarn);
	}
}
