/*
 * Scripts for start-page
 * @author Artyom Fatikhov
 */

window.type = 'start';
window.focus_onload_id = 'login_field';


/* Counter registered users */
function initCounter(counter) {

	var count = parseInt(counter.replace(/ /g, '')),
		per_sec = 0.2314815;
	
	function onCount() {
		next = -(1000 / per_sec) * Math.log(Math.random());
		var count_str = '' + count;
		len = count_str.length;
		count_str = count_str.substr(0, len - 6) + " " + count_str.substr(len - 6, 3) + " " + count_str.substr(len - 3, 3);
		document.getElementById('mem_count').innerHTML = count_str;
		count = count + 1;
		window.setTimeout(function() { onCount(); }, next);
	}
	onCount();
}


/* Validation of the entered to registration form data */

// initialization
var name = document.getElementById('user_name'),
	lastname = document.getElementById('user_lastname'),
	email = document.getElementById('user_email'),
	day = document.getElementById('user_birthday_day'),
	month = document.getElementById('user_birthday_month'),
	year = document.getElementById('user_birthday_year'),
	sex_male = document.getElementById('male'),
	sex_female = document.getElementById('female'),
	place = document.getElementById('user_city'),	
	passwd = document.getElementById('user_password'),
	passwd2 = document.getElementById('user_password2'),
	captcha = document.getElementById('user_captcha'),
	button = document.getElementById('submit_button'),
	sex_div = document.getElementById('req_sex').parentNode,
	error_class = 'form_field required error',
	noerror_class = 'form_field required no_error',
	default_class = 'form_field required',
	delay = 150;
	
	
// checking name
name.onkeyup = function() {
	if (name.value) {
		name.parentNode.className = noerror_class;
	}
	else {
		name.parentNode.className = error_class;
	}
}

if (email) { // if there isn't nevada
	email.onkeyup = function() {
		if (email.value) {
			if ((email.value.indexOf('@') > 0) && (email.value.indexOf('@') != (email.value.length - 1))) {
				var subs = email.value.substring(email.value.indexOf('@') + 1);
				if (subs.indexOf('.') > 0 && subs.indexOf('.') != (subs.length - 1)) {
					email.parentNode.className = noerror_class;
				}
				else {
					email.parentNode.className = error_class;
				}
			}
			else {
				email.parentNode.className = error_class;
			}
		}
		else {
			email.parentNode.className = error_class;
		}
	}
}

place.onchange = function() {
	if (place.selectedIndex > 0) {
		place.parentNode.className = noerror_class;
	}
	else {
		place.parentNode.className = error_class;
	}
}

// checking captcha
if (captcha) {
	captcha.onkeyup = function() {
		if (captcha.value) {
			captcha.parentNode.parentNode.className = noerror_class;
		}
		else {
			captcha.parentNode.parentNode.className = error_class;
		}
	}
}

// checking password
if (email) {
	passwd.onkeyup = function() {
		if (passwd.value.length > 5) {
			passwd.parentNode.className = noerror_class;
		}
		else {
			passwd.parentNode.className = error_class;
		}
	}
	passwd2.onkeyup = function() {
		if (passwd2.value.length == passwd.value.length) {
			if (passwd2.value == passwd.value) {
				passwd2.parentNode.className = noerror_class;
			}
			else {
				passwd2.parentNode.className = error_class;
			}
		}
		else {
			if (passwd2.value.length > passwd.value.length) {
				passwd2.parentNode.className = error_class;
			}
			else {
				passwd2.parentNode.className = default_class;
			}
		}
	}
}
	
// checking date
function onChangeSelect (slct) {
	slct.onchange = function() {
		if (day.selectedIndex > 0 && month.selectedIndex > 0 && year.selectedIndex > 0) {
			slct.parentNode.parentNode.className = noerror_class;
		}
		else {
			slct.parentNode.parentNode.className = error_class;
		}
	}
}
	
onChangeSelect(day);
onChangeSelect(month);
onChangeSelect(year);
	
// checking sex
sex_male.onchange = function() {
	if (!sex_male.checked && !sex_female.checked) {
		sex_div.className = error_class;
	}
	else {
		sex_div.className = noerror_class;
	}
}
sex_female.onchange = function() {
	if (!sex_male.checked && !sex_female.checked) {
		sex_div.className = error_class;
	}
	else {
		sex_div.className = noerror_class;
	}
}


// when focus on field check previous fields

function onCheckName() {
	if (!name.value) {
		if (name.parentNode.className == error_class) {
			name.parentNode.className = default_class;
			setTimeout(function() { name.parentNode.className = error_class; } , delay);
		}
		else {
			name.parentNode.className = error_class;
		}
	}
}

function onCheckEmail() {
	if (email.parentNode.className != noerror_class) {
		if (email.parentNode.className == error_class) {
			email.parentNode.className = default_class;
			setTimeout(function() { email.parentNode.className = error_class; } , delay);
		}
		else {
			email.parentNode.className = error_class;
		}
	}
}

function onCheckDate() {
	if (year.parentNode.parentNode.className != noerror_class) {
		if (year.parentNode.parentNode.className == error_class) {
			year.parentNode.parentNode.className = default_class;
			setTimeout(function() { year.parentNode.parentNode.className = error_class; } , delay);
		}
		else {
			year.parentNode.parentNode.className = error_class;
		}
	}
}

function onCheckSex() {
	if (!sex_male.checked && !sex_female.checked) {
		if (sex_div.className == error_class) {
			sex_div.className = default_class;
			setTimeout(function() { sex_div.className = error_class; } , delay);
		}
		else {
			sex_div.className = error_class;
		}
	}
}

function onCheckPlace() {
	if (place.parentNode.className != noerror_class) {
		if (place.parentNode.className == error_class) {
			place.parentNode.className = default_class;
			setTimeout(function() { place.parentNode.className = error_class; } , delay);
		}
		else {
			place.parentNode.className = error_class;
		}
	}
}

function onCheckPasswd() {
	if (passwd.value.length < 6) {
		if (passwd.parentNode.className == error_class) {
			passwd.parentNode.className = default_class;
			setTimeout(function() { passwd.parentNode.className = error_class; } , delay);
		}
		else {
			passwd.parentNode.className = error_class;
		}
	}
}

function onCheckPasswd2() {
	if (passwd2.value.length < 6 || passwd2.value != passwd.value) {
		if (passwd2.parentNode.className == error_class) {
			passwd2.parentNode.className = default_class;
			setTimeout(function() { passwd2.parentNode.className = error_class; } , delay);
		}
		else {
			passwd2.parentNode.className = error_class;
		}
	}
}

function onCheckCaptcha() {
	if (captcha.parentNode.parentNode.className != noerror_class) {
		if (captcha.parentNode.parentNode.className == error_class) {
			captcha.parentNode.parentNode.className = default_class;
			setTimeout(function() { captcha.parentNode.parentNode.className = error_class; } , delay);
		}
		else {
			captcha.parentNode.parentNode.className = error_class;
		}
	}
}

function onFocusSex() {
	onCheckName();
	if (email) onCheckEmail();
	onCheckDate();	
}

lastname.onfocus = function() {
	onCheckName();
}

if (email) {
	email.onfocus = function() {
		onCheckName();
	}
	
	passwd.onfocus = function() {
		onCheckName();
		onCheckEmail();
		onCheckDate();
		onCheckSex();
		onCheckPlace();
	}
	passwd2.onfocus = function() {
		onCheckName();
		onCheckEmail();
		onCheckPasswd();
		onCheckDate();
		onCheckSex();
		onCheckPlace();
	}
}

day.onfocus = function() {
	onCheckName();
	if (email) onCheckEmail();
}
month.onfocus = function() {
	onCheckName();
	if (email) onCheckEmail();
}
year.onfocus = function() {
	onCheckName();
	if (email) onCheckEmail();
}

sex_male.onfocus = function() {
	onFocusSex();
}
sex_female.onfocus = function() {
	onFocusSex();
}

captcha.onfocus = function() {
	onCheckName();
	if (email) {
		onCheckEmail();
		onCheckPasswd();
		onCheckPasswd2();
	}	
	onCheckDate();
	onCheckSex();
	onCheckPlace();
}

/* xtheme: hide (statistics collection)
// button click
button.form.onsubmit = function() {	
	if (email) {
		if (name.parentNode.className != noerror_class ||
			email.parentNode.className != noerror_class ||
			captcha.parentNode.parentNode.className != noerror_class ||
			passwd.parentNode.className != noerror_class ||
			passwd2.parentNode.className != noerror_class ||
			year.parentNode.parentNode.className != noerror_class ||
			sex_div.className != noerror_class)
		{
			onCheckName();
			onCheckEmail();
			onCheckPasswd();
			onCheckPasswd2();
			if (captcha) onCheckCaptcha();
			onCheckDate();
			onCheckSex();
			onCheckPlace();

			return false;
		}
	}
	else {
		if (name.parentNode.className != noerror_class ||
			captcha.parentNode.parentNode.className != noerror_class ||
			year.parentNode.parentNode.className != noerror_class ||
			sex_div.className != class_name != noerror_class)
		{
			onCheckName();
			if (captcha) onCheckCaptcha();
			onCheckDate();
			onCheckSex();
			onCheckPlace();

			return false;
		}
	}	
}
*/
