/**
* загружает новую картинку капчи
*/
function captchaRefresh()
{
    $('#captchaRefresher').addClass('act');
    $.get("/ajax/captcha/?i=" + Math.floor(100000000000*Math.random()), function(data){
        $('#butikus_captcha img').attr('src', '/img/captcha/' + data + '.png');
        $('#butikus_captcha_code').val(data);
        $('#captchaRefresher').removeClass('act');
    });
}

/**
* проверяет логин по кнопке "проверить"
*/
function checkLogin(id)
{
    if (!vCheckLogin($('#'+id))) {
        $('#butikus_login_result').attr('class', 'red').text(' — Такой логин невозможен.');
        return false;
    }

    if (!vCheckLoginExistence($('#'+id))) {
        $('#butikus_login_result').attr('class', 'red').text(' — Этот логин уже занят.');
        return false;
    }

    $('#butikus_login_result').attr('class', 'green').text(' — Логин свободен.');
    return false;
}

/**
* вернет коэфициент сложности пароля
* пороги 1 - 5 - 10 - 16 - 24 - 32
*/
function passSafety(pass)
{
  var uns = '';
  var groups = 0;
  var symbols = new Object();
  for(var i=-1; i<=pass.length; i++) if(!symbols[pass.substr(i,1)])
  {
    uns += pass.substr(i,1);
    symbols[pass.substr(i,1)] = true;
  }

  if(/[0-9]/.test(uns)) groups++;
  if(/[a-z]/.test(uns)) groups++;
  if(/[A-Z]/.test(uns)) groups++;
  if(/[^0-9a-z]/i.test(uns)) groups++;

  return (pass.length+uns.length)/2 * groups;
}

function showPassSafety(text)
{
    var coef = passSafety(text);
    var width = Math.round(100*coef/32);
    $('#pass_begun').width((width > 100 ? 100 : width)+'%');
    if (text.length < 5 ) {
        $('#pass_begun').css('background', '#e72d2e');
        $('#pass_val').text('Слишком короткий');
    } else {
        if (coef < 10) {
            $('#pass_begun').css('background', '#e7842e');
            $('#pass_val').text('простой ('+text.length+' символов)');
        } else  if (coef < 16) {
            $('#pass_begun').css('background', '#e7d82e');
            $('#pass_val').text('нормальный ('+text.length+' символов)');
        } else if (coef < 24) {
            $('#pass_begun').css('background', '#99e32e');
            $('#pass_val').text('очень хороший ('+text.length+' символов)');
        } else if (coef < 32) {
            $('#pass_begun').css('background', '#46e32e');
            $('#pass_val').text('отличный ('+text.length+' символов)');
        } else {
            $('#pass_begun').css('background', '#46e32e');
            $('#pass_val').text('превосходный ('+text.length+' символов)');
        }
    }
    if (text.length == 0) {
        $('#pass_val').empty();
    }
}

function toggleMenu(id)
{
    if ($('#li_'+id).hasClass('act')) {
        closeMenu(id);
    } else {
        openMenu(id);
    }
}

function openMenu(id)
{
    $('#li_'+id).addClass('act');
    $('#kb_'+id).addClass('minus').removeClass('plus');
    document.cookie = "katokb_"+id+"=1; path=/";
}

function closeMenu(id)
{
    $('#li_'+id).removeClass('act');
    $('#kb_'+id).removeClass('minus').addClass('plus');
    document.cookie = "katokb_"+id+"=0; path=/";
}

/**
* выделяет строку в таблице
*/
function tdHover(id)
{
    $('#'+id+' tr:not(.head)').hover(
        function() {
            $(this).addClass('hover');
        },
        function() {
            $(this).removeClass('hover');
        }
    );
}

function showPic(id)
{
    $('#photo_preview TD').removeClass('act');
    $('#td_'+id).addClass('act');

    $('#good_picture').attr('src', 'img/temp'+id+'.jpg');
}



$(document).ready(function() {
    $('#left_tree li').each(function() {
        var need_id = str_replace('li_', '', $(this).attr('id'));
        if (getCookie('katokb_'+need_id) == "1") {
            openMenu(need_id);
        }
    });
});




function getCookie(name)
{
    var dc = document.cookie;
    var prefix = name + "=";
    var begin = dc.indexOf("; " + prefix);
    if (begin == -1) {
        begin = dc.indexOf(prefix);
        if (begin != 0) return null;
    } else
    begin += 2;
    var end = document.cookie.indexOf(";", begin);
    if (end == -1) {
        end = dc.length;
    }
    return unescape(dc.substring(begin + prefix.length, end));
}

function str_replace (search, replace, subject)
{
    if(!(replace instanceof Array)){
        replace=new Array(replace);
        if(search instanceof Array){
            while(search.length>replace.length){
                replace[replace.length]=replace[0];
            }
        }
    }

    if(!(search instanceof Array))search=new Array(search);
    while(search.length>replace.length){
        replace[replace.length]='';
    }

    if(subject instanceof Array){
        for(k in subject){
            subject[k]=str_replace(search,replace,subject[k]);
        }
        return subject;
    }

    for(var k=0; k<search.length; k++){
        var i = subject.indexOf(search[k]);
        while(i>-1){
            subject = subject.replace(search[k], replace[k]);
            i = subject.indexOf(search[k],i);
        }
    }

    return subject;
}


function getMarks(id, grp_id, checked)
{
    if($.trim($('#btks_mark'+id).text()) == '') {
        $('#btks_mark'+id).append('<img src="/style/osk/i/loader.gif" alt="Загружается" />').show();
        $.ajax({
            url: "/ajax/models/",
            type: 'POST',
            dataType: "json",
            data: { model_id: id, group_id: grp_id},
            error: function(data){
                alert('Произошла ошибка. Обратитесь к разработчику. Код #ajm1.');
            },
            success: function(json) {
                $('#btks_mark'+id).empty();
                if (json.succsess == '1') {
                    $.each(json.data, function(i, model) {
                        $('#btks_mark'+id).append('<input type="checkbox" name="model['+id+'][]" value="'+model.id+'" id="btks_model'+model.id+'" />&nbsp;<label for="btks_model'+model.id+'">'+model.name+'</label> ');
                    });
                    $('#btks_control'+id).removeAttr('checked');
                    setChecked(id);
                    if (checked) {
                        for (var i = 0; i < checked.length; i++) {
                            $('#btks_model'+checked[i]).attr('checked', 'checked');
                        }
                    }
                } else {
                    $('#btks_mark'+id).append('<span class="small gray">Нет моделей</span>');
                }
            }
        });

    } else {
        $('#btks_mark'+id).toggle();
    }
}

/**
* групповое отмечание чекбоксов
*/
function setChecked(checkbox_id) {
    var control_obj = $('#btks_control'+checkbox_id);
    var check = $('#btks_mark'+checkbox_id+' :checkbox');

    control_obj.click(function() {
        for (var i=0; i < check.length; i++) {
            check[i].checked = this.checked;
        }
    });

    $(check).click(function() {
        var checked = 0
        for (var i=0; i < check.length; i++) {
            if (check[i].checked) {
                checked ++;
            }
        }

        if (checked != check.length) {
            control_obj.removeAttr('checked');
        } else {
            control_obj.attr('checked', 'checked');
        }
    });
}
