/**
 * Forgot password
 */
function forgot_submit()
{
    $.getJSON(
        '/forgot/', 
        {
            'login': $('#forgot-form').find('input[name=login]').val()
        }, 
        function(data) {
            if (data['code']) {
              alert("Письмо с данными отправлено на e-mail, указанный при регистрации.");
              dialog_close('dialog-forgot');
            } else {
                alert(data['msgs'].join("\n"));
            }
        }
    );
    
    return false;
}


/* SIGN UP FORM  ------------------------------------------------------------ */

var email_re = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;

function signup_check_login()
{
    var e_login = $('#signup_form').find('input[name=email]').val();
    if (e_login == '') {
        $('#login_check').html('');
        return;
    }
    
    
    // check for letters
    var e_login_check = $('#login_check');
    if (email_re.test(e_login)) {
	    $.getJSON(
	        '/signup/check_login/', 
	        {'email': e_login},
	        function (data) {
	            if (data) {
	                e_login_check.css('color', '#090');
	                e_login_check.html('свободен');
	            } else {
	                e_login_check.css('color', '#C00');
	                e_login_check.html('занят');
	            }
	        }
	    );
    } else {
    	e_login_check.html('');
    }
}
var pwd_re = new RegExp("^[-a-zA-Z0-9`~!@#\$%\^&*()_+=]*$");
function signup_check_pwd() 
{
    var str_text = ['короткий', 'слабый', 'нормальный', 'сильный'];
    var str_color = ['#C00', '#C00', '#999', '#090'];
    
    var s_login = $('#signup_form').find('input[name=email]').val();
    var s_password = $('#signup_form').find('input[name=password]').val();
    
    // check for letters
    if (!pwd_re.test(s_password)) {
        $('#signup_form').find('input[name=password]').val('');
        return alert('В пароле можно использовать только латинские буквы, цифры и символы.');;
    }
    
    var str = passwordStrength(s_password, s_login);
    
    $('#pwd_check')
        .css('color', str_color[str])
        .html(str_text[str]);
}

$(function () {
	
    if ($('#signup_form').get(0)) {
        // bind login checker
        $('#signup_form')
            .find('input[name=email]')
            .bind('change', signup_check_login)
            .bind('keyup', signup_check_login);
            
        // bind password strength checker
        $('#signup_form')
            .find('input[name=password]')
            .bind('change', signup_check_pwd)
            .bind('keyup', signup_check_pwd);
    }
});



/* DIALOG CONTROL ------------------------------------------------------- */
function dialog_show(id, callback)
{
    $('#'+id).fadeIn('slow', callback);
}
function dialog_close(id, callback)
{
    $('#'+id).fadeOut('fast', callback);
}


/* HELPERS -------------------------------------------------------------- */
function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}

var lastMsg = 1;
function showMessage(msgs, type) {
    lastMsg++;
    if (type == 'ok') {
        title = 'Сообщение';
        mclass = 'msgs_ok';
    } else {
        title = 'Ошибка';
        mclass = 'msgs';
    }
    
    // hack
    title = '';
    
    if (!(msgs instanceof Array)) {
        msgs = [msgs];
    }
    var mid = 'msgs-'+lastMsg;
    var messages = $('<div></div>');
    for(i=0; i<msgs.length; i++) {
        messages.append(msgs[i]);
        if ((i+1) < msgs.length) {
            messages.append($('<hr/>'));
        }
    }
    var m = $('<div style="display:none;"><div></div><div>')
        .attr('class', mclass)
        .attr('id', mid)
        .append(messages);
    $('body').append(m);
    
    tb_show(title, '#TB_inline?height=100&width=300&inlineId='+mid, false);
}

/**
 * Rating starts 
 */
$.fn.stars = function() {
	$(this).each(function() {
		var val = parseFloat($(this).html());
		val = Math.round(val * 4) / 4;

		val = val > 5 ? 5 : (val < 0 ? 0 : val);

		var size = 16 * val;

		var stars = $('<span class="stars"><span></span></span>');
		stars.find('span').width(size);
		$(this).replaceWith(stars);
	});
}

$(document).ready(function() {
	$('span.stars').stars();
	
	if($(window).height()>$('#outer').height()){
		dif = $(window).height()-$('#outer').height();
		he1 = $('.page').height();
		res = he1+dif
		$('.page').height(res);
	}
	
	$(window).resize(function() {
		if($(window).height()>$('#outer').height()){
			dif = $(window).height()-$('#outer').height();
			he1 = $('.page').height();
			res = he1+dif
			$('.page').height(res);
		}
	});
	   
	
	
});

