$(document).ready(function() {
    closeAuthForm();
})


var auth_none = false;

/**
*   Показывает аторизацю
*/
function authForm() {
    $('#auth_form').show();
    auth_none = true;
}


/**
*   Скрывает аторизацю
*/
function closeAuthForm() {

    $("#auth_form").click(function() {
        auth_none = true;
    });

    $(document).click(function() {
        if(!auth_none) {
            $("#auth_form").hide();
        }
        auth_none = false;
    });
}


/**
* определяет браузер
*/
function getBrowserInfo()
{
    var t,v = undefined;
    if (window.opera) {
        t = 'Opera';
    } else if (document.all) {
        t = 'IE';
        var nv = navigator.appVersion;
        var s = nv.indexOf('MSIE')+5;
        v = nv.substring(s,s+1);
    } else if (navigator.appName) {
        t = 'Netscape';
    }
    return {type:t,version:v};
}

/**
* кроссбраузерное добавление в закладки
*/
function bookmark(a)
{
    var url = window.document.location;
    var title = window.document.title;
    var b = getBrowserInfo();
    if (b.type == 'IE' && 7 > b.version && b.version >= 4) {
        window.external.AddFavorite(url,title);
    } else if (b.type == 'Opera') {
        a.href = url;
        a.rel = "sidebar";
        a.title = url+','+title;
        return true;
    } else if (b.type == "Netscape")  {
        window.sidebar.addPanel(title,url,"");
    } else {
        alert("Нажмите CTRL-D, чтобы добавить страницу в закладки.");
    }
    return false;
}

/**
* загружает новую картинку капчи
*/
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 add2cart(_this)
{
    var src = $(_this).attr('src');
    $(_this).before("<img src='"+src+"' alt='' id='hider_button' />")
    $('#hider_button').css('position', 'absolute').css('right', '0').animate({opacity: 0.1, height: '64px', marginRight: '-42px', marginTop: '-16px'}, 300, function() {
        $(this).remove()
    });

    var form = $(_this).parent('form');
    $.post(form.attr('action'), form.serialize()+'&ajax=1', function(data) {
        if (data == 1) {
            $(_this).attr('src', '/style/bestb/i/into_cart.gif');
            checkCart();
            // тут же необходимо чекать корзину
        } else {
            alert('Товар не добавлен в корзину. Видимо его нет на складе.');
        }
    });
}

// проверит и подставит значения о состоянии корзины
function checkCart()
{
    $.getJSON('/ajax/cart/', function(json) {
        $('#butikus_cart_summ').text(json.summ);
        $('#butikus_cart_amount').text(json.amount);
        $('#butikus_cart_summ_mega').text(json.summ);
        $('#butikus_cart_amount_mega').text(json.amount);
    });
}

// вернет значение на которое страница прокручена вниз
function getBodyScrollTop()
{
  return self.pageYOffset || (document.documentElement && document.documentElement.scrollTop) || (document.body && document.body.scrollTop);
}

$(document).scroll(function() {
    if (getBodyScrollTop() > 100) {
        $('#butikus_megacart').show();
        $('#butikus_shortcart').hide();
    } else {
        $('#butikus_megacart').hide();
        $('#butikus_shortcart').show();
    }
    //console.log('Лопата + ' + );
})


/**
* получает куку
* = все страницы
*/
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));
}


/**
 * добавляет переданный id в куку для сравнения товаров. Меняет HTML.
 */
function compareAdd(id)
{
    var allow_add = true;
    var compare_cookie = getCookie('butikus_compare');
    var compare_array = new Array();

    if(compare_cookie){
        compare_array = compare_cookie.split(',', 10);

        for(var i = 0; i < compare_array.length; i++){
            if(compare_array[i] == id){
                allow_add = false;
            }
        }
    }

    if( allow_add ){
        compare_array[compare_array.length] = id;
        document.cookie = 'butikus_compare='+compare_array.join(',')+'; path=/';
    }

    if( compare_array.length > 1 ){
    $('#compare_add_'+id).after('<span id="compare_remove_'+id+'"><a href="#" onclick="compareRemove('+id+');return false;" class="punkt">Убрать из сравнения</a> <a href="/shop/compare/">Сравнить ('+compare_array.length+')</a></span>').remove();
    } else {
        $('#compare_add_'+id).after('<span id="compare_remove_'+id+'"><a href="#" onclick="compareRemove('+id+');return false;" class="punkt">Убрать из сравнения</a></span>').remove();
    }
}

/**
 * удаляет переданный id из куки сравнения товаров. Меняет HTML.
 */
function compareRemove(id)
{
    var old_cookie = getCookie('butikus_compare');
    var compare_array = new Array();

    if(old_cookie){
        compare_array = old_cookie.split(',', 10);

        for(var i = 0; i < compare_array.length; i++){
            if(compare_array[i] == id){

                // Удаление из cookie
                compare_array.splice(i, 1);
                if(compare_array.length == 0){
                    // Удаляем cookie вообще
                    null_date = new Date(0);
                    document.cookie = 'butikus_compare=; expires='+null_date.toGMTString()+'; path=/';
                } else {
                    document.cookie = 'butikus_compare='+compare_array.join(',')+'; path=/';
                }
                break;
            }
        }
    }
    $('#compare_remove_'+id).after('<a href="#" class="punkt" id="compare_add_'+id+'" onclick="compareAdd('+id+'); return false;">Добавить к сравнению</a>').remove();
}

/**
 * удаление товара из сравнения: из куки и из таблицы.
 */
function compareRemoveFromTable(id)
{
    var old_cookie = getCookie('butikus_compare');
    var compare_array = new Array();

    if(old_cookie){
        compare_array = old_cookie.split(',', 10);

        for(var i = 0; i < compare_array.length; i++){
            if(compare_array[i] == id){

                // Удаление из cookie
                compare_array.splice(i, 1);
                if(compare_array.length == 0){
                    // Удаляем cookie вообще
                    null_date = new Date(0);
                    document.cookie = 'butikus_compare=; expires='+null_date.toGMTString()+'; path=/';

                    $('#compare_table').after('<p class="compare_message">Список сравнения пуст.</p>').remove();
                } else {
                    document.cookie = 'butikus_compare='+compare_array.join(',')+'; path=/';
                    // Удаление столбца
                    var index = $('#th_'+id).parent('tr').children().index($('#th_'+id));
                    $('#compare_table').find('tr').each(function(){
                        $(this).children(':eq('+index+')').remove();
                    });
                }
                return;
            }
        }
    }
}


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

/**
 * Показывает скрытый текст
 */
function showMore(_this)
{
    $(_this).parent().hide().parent().find('.dn').show();
}

/**
 * Скрывает часть длинного текста
 */
function showLess(_this)
{
    $(_this).parent().hide().parent().find('.text_show_more').show();
}
