function IsDaylightSavingTime() {
	var date = new Date(new Date().getFullYear(), 0, 1, 1, 1, 1);
	var currentdate = new Date();
	var msec = date.getTime();
	var offset = (date.getTimezoneOffset() * -1);
	var isdaylightdifference = false;
	for (var j = 0; j < 4; ++j) {
		date.setTime(msec + j * 7884000000);
		var temp = Math.max(offset, date.getTimezoneOffset() * -1);
		if (temp != offset) {
			isdaylightdifference = true;
		}
		offset = temp;
	}
	if (isdaylightdifference) {
		return offset == (currentdate.getTimezoneOffset() * -1);
	}
	else {
		return false;
	}
}
var timeoutHandlers = { password: null, email: null, username: null };
var fieldTimeouts = { password: 500, email: 500, username: 500 };

function setPasswordTimeout() {
	if (timeoutHandlers.password != null) {
		clearTimeout(timeoutHandlers.password);
	}
	timeoutHandlers.password = setTimeout(checkPassword, fieldTimeouts.password);
}

function setEmailTimeout() {
	if (timeoutHandlers.email != null) {
		clearTimeout(timeoutHandlers.email);
	}
	timeoutHandlers.email = setTimeout(function () { checkEmail(false); }, fieldTimeouts.email);
}

function setUsernameTimeout() {
	if (timeoutHandlers.username != null) {
		clearTimeout(timeoutHandlers.username);
	}
	timeoutHandlers.username = setTimeout(checkUsername, fieldTimeouts.username);
}

function generateUsername() {
	setElements();
	if (usernameTextBox.value == '') {
		new Ajax.Request('/section/user/createprofile/createprofileajax.ashx?m=GenerateUsername&email=' + emailTextBox.value, { onSuccess: updateUsernameTextBox });
	}
}

function updateUsernameTextBox(response) {
	if (usernameTextBox.value == '') {
		usernameTextBox.value = response.responseText;
		if (response.responseText != '') {
			setOk('username');
		}
	}
}

function checkEmail(makeUsername) {
	clearTimeout(timeoutHandlers.email);
	setElements();
	var email = emailTextBox.value;
	if (email != '') {
		if (email.isEmail()) {
			setOk('email');
			if (makeUsername) {
				generateUsername();
				checkEmailDomain();
			}
		} else {
			setError('email', 'The entered mail is not valid');
		}
	} else {
		setNoStatus('email');
	}
}

function checkEmailDomain() {
	setElements();
	new Ajax.Request('/section/user/createprofile/createprofileajax.ashx?m=CheckEmailDomain&email=' + emailTextBox.value, { onSuccess: handleEmailDomainResult });
}

function handleEmailDomainResult(response) {
	var domainResponse = eval('(' + response.responseText + ')');
	if (!domainResponse.Success) {
		setNotice('email', 'It appears that you have made a spelling error in your e-mail, did you mean ' + domainResponse.ReplaceWith + '?');
	}
}

function checkPassword() {
	clearTimeout(timeoutHandlers.password);
	setElements();
	var password = passwordTextBox.value;
	if (password != '') {
		if (password.length < 4) {
			setError('password', 'Password must contain at least 4 characters.');
		} else if (password.length > 20) {
			setError('password', 'Password can not be longer than 20 characters.');
		} else if (!new RegExp('^[a-zA-Z0-9-]{4,20}$').test(password)) {
			setError('password', 'The password contains invalid characters, only numbers and letters are allowed.');
		} else {
			setOk('password');
		}
	} else {
		setNoStatus('password');
	}
}

function checkUsername() {
	clearTimeout(timeoutHandlers.username);
	setElements();
	var username = usernameTextBox.value;
	if (username.length < 2) {
		setError('username', 'User name must contain at least 2 characters.');
	} else if (username.length > 16) {
		setError('username', 'User name can not be longer than 16 characters');
	} else {
		new Ajax.Request('/section/user/createprofile/createprofileajax.ashx?m=CheckUsername&username=' + username, { onSuccess: handleUsernameResponse });
	}
}

function handleUsernameResponse(response) {
	switch (response.responseText) {
		case "0":
			setOk('username');
			break;
		case "1":
			setNoStatus('username');
			break;
		case "2":
			setError('username', 'The user name contains invalid characters, only numbers and letters are allowed.');
			break;
		case "3":
			setError('username', 'User name has already been taken, please choose another');
			break;
	}
}

function setOk(elm) {
	$(elm + 'StatusImage').src = '/icons/ap/16x16/plain/check2.png';
	$(elm + 'StatusMessage').update();
}

function setError(elm, message) {
	$(elm + 'StatusImage').src = '/icons/ap/16x16/plain/delete2.png';
	$(elm + 'StatusMessage').update(message);
}

function setNotice(elm, message) {
	$(elm + 'StatusImage').src = '/icons/ap/16x16/plain/information.png';
	$(elm + 'StatusMessage').update(message);
}

function setNoStatus(elm) {
	$(elm + 'StatusImage').src = '/grafik/spacer.gif';
	$(elm + 'StatusMessage').update();
}
try {
RegTr("18679");
RegTr("18764");
RegTr("18680");
RegTr("18681");
RegTr("18682");
RegTr("18683");
RegTr("18684");
RegTr("18685");
RegTr("18686");
} catch (e) {}
