function docHeight () {
	if (Prototype.Browser.IE) {
		if (document.documentElement && document.documentElement.clientHeight) return document.documentElement.clientHeight;
		return document.body.clientHeight;
	} else {
		return window.innerHeight;
	}
}
function docWidth () {
	if (Prototype.Browser.IE) {
		if (document.documentElement && document.documentElement.clientWidth) return document.documentElement.clientWidth;
		return document.body.clientWidth;
	} else {
		return window.innerWidth;
	}
}

function showDialog(id) {
	showShader();
	
	$(id).setStyle({
		display: 'block',
		visibility : 'visible'
	});
	$(id).setStyle({
		left: ((docWidth() - $(id).offsetWidth)/2)+'px',
		top : ((docHeight() - $(id).offsetHeight)/2)+'px'
	});
}

function hideDialog(id) {
	hideShader();

	$(id).setStyle({
		display: 'none',
		visibility : 'hidden'
	});
}

function showShader() {
	$('shader').setStyle({ visibility: 'visible', display: 'block' });
	$('shader').setStyle({ width: docWidth()+'px', height: docHeight()+'px' });
}

function hideShader() {
	$('shader').setStyle({
		display: 'none',
		visibility : 'hidden'
	});
}

function show_passrecovery() {
	showDialog('recoverPassword');
}

function send_password() {
	new Ajax.Request('/restore.html',{
		method: 'get',
		parameters: { email : $F('email_recover') },
		onComplete: function(transport) {
			if (transport.status == 200) {
				$('restore_form').hide();
				$('restore_controls').hide();
				$('ok_controls').show();
				if (transport.responseText.charAt(0) == '1') {
					$('ok_controls_send').show();
				} else {
					$('ok_controls_error').show();
				}
				$('errors').hide();
				$('email_recover').setStyle({ 'background-color': '#CCC'});
			} else {
				$('errors').innerHTML = "Ошибка при отправке письма!";
			}
		}
	});
}

function resetSendPassword() {
	$('ok_controls_send').hide();
	$('ok_controls_error').hide();
        $('restore_form').show();
        $('restore_controls').show();
        $('ok_controls').hide();
	
	hideDialog('recoverPassword');
}

function openregistration() {
	var req = new Ajax.Request('/reg_form.html', {
		method: 'get',
		onComplete: function(transport) {
			if (transport.status == 200) {
				$('reg_div').innerHTML = transport.responseText;
			} else {
				$('reg_div').innerHTML = '<h1>Регистрация временно не доступна</h1>';
			}
			showDialog('reg_div');
		}
	});
}

function send() {
	var email = $F('email_register');
	var e = '';

	if ($F('name') == '') e += 'Заполните поле Имя<br />';
	if ($F('name1') == '') e += 'Заполните поле Фамилия<br />';
	if (!$F('email_register').match(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i)) e += 'Введите корректный Email<br />';
	if ($F('pass') == '') e += 'Заполните поле Пароль<br />';
	if ($F('pass1') == '') e += 'Заполните поле подтверждения пароля<br />';
	if ($F('pass') != $F('pass1')) e += 'Пароли должны совпадать<br />';

	if (e != '') {
		$('error_div').innerHTML = '<h1>Ошибка:</h1><br />'+e;
		return;
	}
	new Ajax.Request("/reg.html", {
		method: 'post',
		encoding: 'UTF-8',
		parameters :  {
			name    : $F('name'),
			name1   : $F('name1'),
			email   : $F('email_register'),
			pass    : $F('pass'),
			pass1   : $F('pass1'),
			captcha : $F('captcha'),
			chash   : $F('chash')
		},
		onComplete: function(transport) {
			if (transport.status == 200) {
				if (transport.responseText.charAt(0) == "1") {
					$('reg_form').hide();
					$('error_div').innerHTML = 'Благодарим Вас за регистрацию!<br />На e-mail '+email+' отправлено письмо с сылкой для активации Вашего аккаунта.<br />Вам необходимо перейти по этой ссылке. <br /><br />Создавайте интересные открытки!<br /><br />Удачи! <br /><br /><br />'+"<img class='imgbtn' src='/img/ok.gif' onclick=\"hideDialog('reg_div')\">";
				} else {
					var result = transport.responseText.split(/\n/);
					$('error_div').innerHTML = result[1];
					$('capcha_img').src = "/upload/service/captcha/"+result[2]+".png";
					$('chash').value = result[2];
				}
			} else {
				$('error_div').innerHTML = '<h1>Регистрация временно не доступна!</h1>';
			}
		}
	});
}

function updateUserInfo() {
	var e = '';
	if ($F('name') == '') e += 'Заполните поле Имя<br />';
	if ($F('name1') == '') e += 'Заполните поле Фамилия<br />';
	if (!$F('email_update').match(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i)) e += 'Введите корректный Email<br />';
	if ($F('pass') != $F('pass1')) e += 'Пароли должны совпадать<br />';

	if (e != '') {
		$('updateUserInfo_div').innerHTML = '<h2>Ошибка:</h2><br />'+e;
		return;
	} else {
		$('updateUserInfo_div').innerHTML = '';
	}
	$('updateUserInfo_form').submit();
}


function load_rank(offset, total, user) {
	if (offset <= 0) offset = 0;

	new Ajax.Request("/rank.html", {
		method: 'get',
		parameters: {
			'offset' : offset,
			'limit'  : 10,
			'user_id': user
		},
		onSuccess : function(transport) {
			$('ranked_works').innerHTML = transport.responseText;
			if (offset <= 0) {
				$('prev_arrow').src = '/img/arrow_up_grey.gif';
			} else {
				$('prev_arrow').src = '/img/arrow_up.gif';
				$('prev_arrow').onclick = function() {
					load_rank(offset - 10, total, user);
				}
			}
			if (offset + 10 < total) {
				$('next_arrow').src = '/img/arrow_down.gif';
				$('next_arrow').onclick = function() {
					load_rank(offset + 10, total, user);
				}
			} else {
				$('next_arrow').src = '/img/arrow_down_grey.gif';
			}
		}
	});
	return false;
}


