/**
 * Logout
 */
function logout_submit()
{
    $.getJSON(
        '/logout/', 
        {}, 
        function(data) {
            location.href = '/';
        }
    );
    
    return false;
}

/**
 * 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;
}

/**
 * Maillist subscription
 */
function maillist_subscribe()
{
    var email = $('#maillist').find('input[@name=email]').val();
    var url = '/maillist/subscribe/?email=' + encodeURIComponent(email);

    $.getJSON(url, {}, function(data) {
          if (data['code']) {
              alert("Ваш e-mail успешно подписан на рассылку!");
              dialog_close('dialog-maillist');
          } else {
              alert(data['msgs'].join("\n"));
          }
    });
    
    return false;
}

/**
 * Tell a Friend
 */
function friend_submit(id)
{
    var url = '/product/'+id+'/tell_friend/';
    var params = {
        'email': $('#friend').find('input[@name=email]').val(),
        'from': $('#friend').find('input[@name=from]').val(),
        'msg': $('#friend').find('textarea[@name=msg]').val()
    };

    $.getJSON(url, params, function(data) {
          if (data['code']) {
              alert("Письмо другу успешно отправлено!");
              dialog_close('dialog-friend');
          } else {
              alert(data['msgs'].join("\n"));
          }
    });
    
    return false;
}

/**
 * Switch Image for products
 */
function switch_image(row) 
{
    // switch gray
    $('li[@rel=product-images]').attr('class', '');
    $('#'+row).attr('class', 'here');
    
    // set pic
    $('#bigpic').attr('src', '');
    $('#bigpic').attr('src', $('#'+row).find('a').attr('href'));
}

/* CART MANAGEMENT  --------------------------------------------------------- */
function cart_repaint(data)
{
    var num = 0;
    for(var k in data)  {
        num += 1*data[k]['qty'];
    }
    if (num > 0) {
        $('#top_cart_full').find('strong').html(num);
        $('#top_cart_empty').hide();
        $('#top_cart_full').show();
    } else {
        $('#top_cart_full').hide();
        $('#top_cart_empty').show();
    }
}

function cart_add(pid, size, qty)
{
    if (!pid) {
        alert("Ай-ай-ай, ну как же так можно?");
        return false;
    }
    if (!size) {
        alert("Выберите размер!");
        return false;
    }
    if (!qty) {
        alert("Не выбрано количество!");
        return false;
    }
    $.getJSON(
        '/cart/add/', 
        {'pid': pid, 'size': size, 'qty': qty},
        cart_repaint
    );
    
    var el = $('#cart_msg');
    if (!el.length) {
        el = $('<div id="cart_msg" class="msgs_ok" style="display:none"><span></span></div>').appendTo($('body'));
    }
    el.find('span').html('Товар успешно добавлен в корзину!');
    
    tb_show('Корзина', '#TB_inline?width=250&height=80&inlineId=cart_msg');
}

function cart_update(pid, size, qty)
{
    if (!pid) {
        alert("Ай-ай-ай, ну как же так можно?");
        return false;
    }
    if (!size) {
        alert("Выберите размер!");
        return false;
    }
    if (!qty) {
        alert("Не выбрано количество!");
        return false;
    }
    $.getJSON(
        '/cart/update/', 
        {'pid': pid, 'size': size, 'qty': qty},
        cart_repaint
    );
}

function cart_remove(pid, size)
{
    if (!pid) {
        alert("Ай-ай-ай, ну как же так можно?");
        return false;
    }
    if (!size) {
        alert("Выберите размер!");
        return false;
    }
    if (!confirm('Удалить товар из корзины?')) {
        return false;
    }
    $.getJSON(
        '/cart/remove/', 
        {'pid': pid, 'size': size},
        cart_repaint
    );
    
    $('#item-'+pid+'-'+size).remove();
}


/* SIGN UP FORM  ------------------------------------------------------------ */
function signup_check_login()
{
    var e_login = $('#signup_form').find('input[@name=login]').val();
    if (e_login == '') {
        $('#login_check').html('');
        return;
    }
    $.getJSON(
        '/signup/check_login/', 
        {'login': e_login},
        function (data) {
            var e_login_check = $('#login_check');
            if (data) {
                e_login_check.css('color', '#090');
                e_login_check.html('свободен');
            } else {
                e_login_check.css('color', '#C00');
                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=login]').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=login]')
            .bind('change', signup_check_login)
            .bind('keyup', signup_check_login);
            
        // bind password strength checker
        $('#signup_form')
            .find('input[@name=login]')
            .bind('change', signup_check_pwd)
            .bind('keyup', signup_check_pwd);
        $('#signup_form')
            .find('input[@name=password]')
            .bind('change', signup_check_pwd)
            .bind('keyup', signup_check_pwd);
    }
});


/* PROFILE FORM  ------------------------------------------------------------ */
function profile_check_pwd() 
{
    var str_text = ['короткий', 'слабый', 'нормальный', 'сильный'];
    var str_color = ['#C00', '#C00', '#999', '#090'];
    
    var s_password = $('#password_form').find('input[@name=password]').val();
    
    // check for letters
    if (!pwd_re.test(s_password)) {
        $('#profile_form').find('input[@name=password]').val('');
        return alert('В пароле можно использовать только латинские буквы, цифры и символы.');;
    }
    
    var str = passwordStrength(s_password, '');
    
    $('#pwd_check')
        .css('color', str_color[str])
        .html(str_text[str]);
}
$(function () {
    if ($('#password_form').get(0)) {
        // bind password strength checker
        $('#password_form')
            .find('input[@name=password]')
            .bind('change', profile_check_pwd)
            .bind('keyup', profile_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];
}
