/**
 * @author Denis Barushev <barushev@gmail.com>
 * @since 24.06.2008
 */

function number_format(number, decimals, point, separator) {
    if(!isNaN(number))
    {
        point = point ? point : '.';

        number   = number + '';
        number   = number.split('.');

        if(separator)
        {
            var tmp_number = new Array();
            for(var i = number[0].length, j = 0; i > 0; i -= 3)
            {
                var pos = i > 0 ? i - 3 : i;
                tmp_number[j++] = number[0].substring(i, pos);
            }
            number[0] = tmp_number.reverse().join(separator);
        }
        if ( decimals ) {
            if ( number[1] == undefined ) {
                number[1] = '';
            }
            for ( i=number[1].length; i<decimals; i++) {
                number[1] += '0';
            }

            number[1] = '' + Math.round(parseFloat(number[1].substr(0, decimals) + '.' + number[1].substr(decimals, number[1].length), 10));

            while ( number[1].length < decimals ) {
                number[1] = '0' + number[1];
            }
        }
        else {
            number.length = 1;
        }
        return(number.join(point));
    }
    else return(null);
}

/**
 * Class for making slider objects
 */
function Slider(sliderObject, memberWidth) {
    var firstVisible = 0;
    var thisClass = this;

    var windowWidth;
    var membersSize;
    var leftPosition = 0;
    var backDisabled = true;
    var forwardDisabled = false;

    var backObject = $('.back', sliderObject);
    var forwardObject = $('.forward', sliderObject);

    function fixHidden() {
        var hiddenLiIndex = windowWidth + firstVisible;

        $('.goods li', sliderObject).css('visibility', 'visible');
        if ($('.goods li', sliderObject)[hiddenLiIndex]) {
            $('.goods li', sliderObject)[hiddenLiIndex].style.visibility = 'hidden';
        }

        redrawBackAndForwardButtons()
    };

    function redrawBackAndForwardButtons() {
        if (firstVisible == 0) {
            backObject.addClass('disabled').unbind('click', slideBack);
            backDisabled = true;
        } else {
            backObject.removeClass('disabled');
            if (backDisabled) {
                backDisabled = false;
                backObject.bind('click', slideBack);
            }
        }

        if (firstVisible + windowWidth < membersSize) {
            forwardObject.removeClass('disabled');
            if (forwardDisabled) {
                forwardDisabled = false;
                forwardObject.bind('click', slideForward);
            }
        } else {
            forwardObject.addClass('disabled').unbind('click', slideForward);
            forwardDisabled = true;
        }
    };

    function slideBack() {
        firstVisible--;
        redrawBackAndForwardButtons();

        $('.goods', sliderObject).animate(
            { marginLeft: leftPosition + memberWidth + 'px' },
            function () {
                fixHidden();
                leftPosition += memberWidth;
            }
        );
    };

    function slideForward() {
        if (firstVisible < membersSize - 1) {
            firstVisible++;
        }

        redrawBackAndForwardButtons();
        fixHidden();

        $('.goods', sliderObject).animate(
            { marginLeft: leftPosition - memberWidth + 'px' },
            function () {
                leftPosition -= memberWidth;
            }
        );
    };

    function onResize() {
        windowWidth = Math.floor(parseInt(sliderObject.width()/memberWidth));
        fixHidden();
    }

    function onLoad() {
        windowWidth = Math.floor(parseInt(sliderObject.width()/memberWidth));
        membersSize = $('.goods li', sliderObject).size();
        fixHidden();
        forwardObject.bind('click', slideForward);
    }

    $(window).resize(onResize);
    onLoad();
}


function VerticalSlider(sliderObject, memberHeight) {
    var thisClass = this;

    var windowSize = 3;
    var membersSize = $('ul li', sliderObject).size();

    var backDisabled = true;
    var forwardDisabled = true;

    var backObject = $('.back', sliderObject);
    var forwardObject = $('.forward', sliderObject);
    var ulObject = $('ul', sliderObject);

    var topPosition = parseInt(ulObject.css('margin-top'));
    var firstVisible = parseInt(-topPosition/memberHeight);

    function redrawBackAndForwardButtons() {
        if (firstVisible == 0) {
            backObject.addClass('disabled').unbind('click', slideBack);
            backDisabled = true;
        } else {
            backObject.removeClass('disabled');
            if (backDisabled) {
                backDisabled = false;
                backObject.bind('click', slideBack);
            }
        }

        if (firstVisible + windowSize < membersSize) {
            forwardObject.removeClass('disabled');
            if (forwardDisabled) {
                forwardDisabled = false;
                forwardObject.bind('click', slideForward);
            }
        } else {
            forwardObject.addClass('disabled').unbind('click', slideForward);
            forwardDisabled = true;
        }
        $('.count', backObject).html(''+firstVisible);
        $('.count', forwardObject).html(membersSize - firstVisible - 3+'');
    };

    function slideBack() {
        firstVisible--;
        redrawBackAndForwardButtons();

        ulObject.animate(
            { marginTop: topPosition + memberHeight + 'px' },
            function () {
                topPosition += memberHeight;
            }
        );
    };

    function slideForward() {
        if (firstVisible < membersSize - 1) {
            firstVisible++;
        }

        redrawBackAndForwardButtons();

        ulObject.animate(
            { marginTop: topPosition - memberHeight + 'px' },
            function () {
                topPosition -= memberHeight;
            }
        );
    };

    redrawBackAndForwardButtons();
}

function showPopup(selector) {
    $('div.popup').hide();
    var top = parseInt(($("html")[0].clientHeight - $(selector).height())/2);
    if (top < 0) {
        top = 10;
    }
    $(selector).css("top", top + document.lastChild.scrollTop);
    $(selector).show();
}

function showVacancyPopup(title) {
    $("#reply_vacancy input[type='hidden']").val(title);
    $('#reply_vacancy h6').html(title);
    showPopup('#reply_vacancy')
}

function switchRegion(region, region_name) {
    var shops = $('#good .where_to_buy .shops');
    $('tr', shops).hide();
    $('tr.region_' + region, shops).show();
    $('#good .where_to_buy .regions').hide();
    $('#where_to_buy_region_name').html(region_name + ' область');
    $.cookie("region", region, {path: '/catalogue/'});
    shops.show();
}

function adjastAdvertHeight() {
    leftAdvert = $('#bottom_advert div.advert:first-child');
    rightAdvert = $('#bottom_advert div.advert:last-child');
    // Закомментировано из-за проблем в ИЕ6: зацикливается вызов обработчика window.resize
    //leftAdvert.height('auto');
    //rightAdvert.height('auto');
    
    var leftAdvertHeight    = leftAdvert.height(),
        rightAdvertHeight   = rightAdvert.height();
    
    if (leftAdvertHeight > rightAdvertHeight) {
        rightAdvert.height(leftAdvertHeight);
    } else if (leftAdvertHeight < rightAdvertHeight) {
        leftAdvert.height(rightAdvertHeight);
    }
}

function redrawRegisteredUser() {
    var val = $('#content input[name="registered_user"]:checked').val();

    if (val == 1) {
        $('#registered_user_form').show();
        $('#not_registered_user_form').hide();
        $('#order_form').unbind('submit').submit(
            function () {
                return orderSigninFormCheck(this);
            }
        );
        $('#order_form input[name=mode]').val('signin');
    } else if (val == 2) {
        $('#registered_user_form').hide();
        $('#not_registered_user_form').show();
        $('#order_form').unbind('submit').submit(
            function () {
                return orderSignupFormCheck(this);
            }
        );
        $('#order_form input[name=mode]').val('signup');
    } else {
        $('#registered_user_form').hide();
        $('#not_registered_user_form').hide();
    }

    if ( val && $('#order_form input[name=email]').val() == '' ) {
        $('#order_form input[name=email]').focus();
    }
}

function checkCookie( msg ) {
    if ( msg == undefined ) {
        msg = 'Необходимо включить cookie';
    }
    $.cookie('cookie_test', '1', {expires: 10});
    if ( $.cookie('cookie_test') != '1' ) {
        alert(msg);
        return false;
    }

    $.cookie('cookie_test', null);
    return true;
}

function pluralize( num, single, double, plural ) {

    var ld = num % 10;

    if ( num > 10 && num < 15 ) {
        var str = plural;
    }
    else if ( ld == 1 ) {
        var str = single;
    }
    else if ( ld > 1 && ld < 5 ) {
        var str = double;
    }
    else {
        var str = plural;
    }

    return str;

} // end of function pluralize

/**
 * Cart class
 */
function Cart() {

    /**
     * All goods in cart
     */
    this.goods = {};
    this.goodsCnt = 0;

    this.saveGoods = function() {

        var rawGoods = '';

        for ( k in this.goods ) {
            if ( this.goods[k] != undefined ) {
                rawGoods += ((rawGoods == '') ? '' : '|') + k + ':' + this.goods[k];
            }
        }

        $.cookie('cart', rawGoods, {expires: 365, path: '/'});

    } // end of method encodeGoods()

    this.readGoods = function() {

        this.goods = {};
        this.goodsCnt = 0;

        var rawGoods = $.cookie('cart');

        if ( rawGoods != null && rawGoods.match(/^(\d+\:\d+)(\|(\d+\:\d+))*$/) ) {
            var chunks = rawGoods.split('|');

            for ( var i=0; i < chunks.length; i++ ) {
                var buf = chunks[i].split(':');
                this.goods[parseInt(buf[0])] = parseInt(buf[1]);
                this.goodsCnt += parseInt(buf[1]);
            }

        }


    } // end of method decodeGoods()

    this.addGood = function(entid) {

        // Log to Google Analytics
        //pageTracker._trackPageview('/buy/' + entid);

        checkCookie('Для работы с корзиной необходимо\nвключить cookie');

        this.readGoods();

        if ( this.goods[entid] != undefined ) {
            // Good is already presents in a cart
            this.goods[entid]++;
        }
        else {
            this.goods[entid] = 1;
        }
        this.goodsCnt++;
        this.saveGoods();

        this.fillBrief();

        showPopup('#to-cart');

    } // end of method addGood()

    this.changeQuantity = function(entid, quantity) {

        checkCookie('Для работы с корзиной необходимо\nвключить cookie');

        this.readGoods();

        if ( this.goods[entid] != undefined ) {
            // Good is already presents in a cart
            var oldQuantity = this.goods[entid]
        }
        else {
            var oldQuantity = 0;
        }

        if ( quantity == 0 ) {
            this.goods[entid] = undefined;
        }
        else {
            this.goods[entid] = quantity;
        }
        this.goodsCnt += quantity - oldQuantity;
        this.saveGoods();

        this.fillBrief();
    }

    this.fillBrief = function () {
        $('#cart-brief span').html(this.goodsCnt + ' ' + pluralize(this.goodsCnt, 'товар', 'товара', 'товаров'));
    }

    // Here goes constructor code
    this.readGoods();

} // end of class Cart

function sum(num, mode) {
    var decimal = ( ('dollar' == mode && num >= 10) || Math.floor(num) == num ) ? 0 : 2;
    var thousands = ('dollar' == mode) ? '' : ' ';
    return number_format(num, decimal, ',', thousands).replace(/ /, '&nbsp;');
}

function changeQuantity(el, quantity) {

    if ( quantity == undefined ) {
        quantity = parseInt(el.value);
        var quantityChanged = false;
    }
    else {
        var quantityChanged = true;
    }

    if ( isNaN(quantity) ) {
        quantity = 0;
    }

    var good_id = el.id.replace(/^.*?_/, '');
    var price = parseFloat($('#price_'+good_id).val());
    var dollar_rate = parseFloat($('#dollar_rate').val());
    var total = quantity * price;

    var tr = $(el).parents('tr')[0];
    //$('div.value', tr).html(sum(total) + '&nbsp;грн&nbsp;<span class="usd">($'+sum(total/dollar_rate, 'dollar')+')</span>');
    $('div.value', tr).html(sum(total) + '&nbsp;грн&nbsp;');

    if ( quantityChanged ) {
        $('#quantity_'+good_id).val(quantity);
    }

    recountTotal();
    cart.changeQuantity(good_id, quantity);
}

function recountTotal() {
    var total = 0;
    var dollar_rate = parseFloat($('#dollar_rate').val());

    $('#cart .total input.quantity').each(
        function () {
            var good_id = this.id.replace(/^.*?_/, '');
            var quantity = parseInt(this.value);
            if ( isNaN(quantity) ) {
                quantity = 0;
            }
            total += quantity * parseFloat($('#price_'+good_id).val());
        }
    );

    //$('#cart .foot td.total div.value').html(sum(total) + '&nbsp;грн&nbsp;<span class="usd">($'+sum(total/dollar_rate, 'dollar')+')</span>');
    $('#cart .foot td.total div.value').html(sum(total) + '&nbsp;грн&nbsp;');
}

function quantityKeyUp() {
    changeQuantity(this);
}

function delGoodClick() {
    changeQuantity(this, 0);
}

function addError(el) {
    $(el).wrap('<div class="error"></div>');
}

function clearErrors(frm) {
    $(':input', frm).unwrap('div.error');
    $(frm).find('label').unwrap('div.error');
    $('li.error_title').hide();
}

function orderDefaultFormCheck(frm) {
    clearErrors(frm);

    //if ( !$(':input[name=email]', frm).val().match(/^[a-z0-9_\-\.]+@([a-z0-9_\-]+\.)+[a-z]{2,5}$/i) ) {
        //addError($(':input[name=email]', frm));
    //}
    var shippingHasErrors = orderShippingFormCheck(frm);
    
    //addError($(':input[name=registered_user]', frm));
    return !shippingHasErrors;
}

function orderSignupFormCheck(frm) {

    clearErrors(frm);
    var hasErrors = false;

    if ( !$(':input[name=email]', frm).val().match(/^[a-z0-9_\-\.]+@([a-z0-9_\-]+\.)+[a-z]{2,5}$/i) ) {
        addError($(':input[name=email]', frm));
        hasErrors = true;
    }

    if ( $(':input[name=firstname]', frm).val().match(/^\s*$/) ) {
        addError($(':input[name=firstname]', frm));
        hasErrors = true;
    }

    if ( $(':input[name=phone]', frm).val().match(/^\s*$/) ) {
        addError($(':input[name=phone]', frm));
        hasErrors = true;
    }
    
    if ( $(':input[name=passwd]', frm).val().match(/^\s*$/) ) {
        addError($(':input[name=passwd]', frm));
        hasErrors = true;
    }

    var shippingHasErrors = orderShippingFormCheck(frm);
    
    if ( hasErrors ||  shippingHasErrors) {
        $('li.error_title').show();
    }

    return !(hasErrors || shippingHasErrors);
}

function orderShippingFormCheck(frm) {
    var hasErrors = false;
    var shipping = $(':input[name=shipping_method]:checked', frm).attr('id');

    if (shipping) {
        switch (shipping) {
            case 'shipping_shop':
                if ( $(':input[name=region]', frm).val().match(/^\s*$/) ) {
                    addError($(':input[name=region]', frm));
                    hasErrors = true;
                }

                if ( $(':input[name=shop]', frm).val().match(/^\s*$/) ) {
                    addError($(':input[name=shop]', frm));
                    hasErrors = true;
                }
                
                if ($('#legal_person').is(':checked')) {
                
                    if ( $(':input[name=lp_name]', frm).val().match(/^\s*$/) ) {
                        addError($(':input[name=lp_name]', frm));
                        hasErrors = true;
                    }
                    
                    if ( $(':input[name=lp_address]', frm).val().match(/^\s*$/) ) {
                        addError($(':input[name=lp_address]', frm));
                        hasErrors = true;
                    }
                    
                    if ( $(':input[name=lp_inn]', frm).val().match(/^\s*$/) ) {
                        addError($(':input[name=lp_inn]', frm));
                        hasErrors = true;
                    }
                    
                    if ( !$(':input[name=not_nds]', frm).is(':checked') && $(':input[name=lp_certificate]', frm).val().match(/^\s*$/) ) {
                            addError($(':input[name=lp_certificate]', frm));
                            hasErrors = true;
                    }
                }
                break;
            case 'shipping_post':
                if ( $(':input[name=post_name]', frm).val().match(/^\s*$/) ) {
                    addError($(':input[name=post_name]', frm));
                    hasErrors = true;
                }
                
                if ( $(':input[name=post_town]', frm).val().match(/^\s*$/) ) {
                    addError($(':input[name=post_town]', frm));
                    hasErrors = true;
                }
                
                if ( $(':input[name=post_street]', frm).val().match(/^\s*$/) ) {
                    addError($(':input[name=post_street]', frm));
                    hasErrors = true;
                }
                
                if ( $(':input[name=post_building]', frm).val().match(/^\s*$/) ) {
                    addError($(':input[name=post_building]', frm));
                    hasErrors = true;
                }
                break;
            case 'shipping_courier':
                if ( $(':input[name=courier_name]', frm).val().match(/^\s*$/) ) {
                    addError($(':input[name=courier_name]', frm));
                    hasErrors = true;
                }
                
                if ( $(':input[name=courier_town]', frm).val().match(/^\s*$/) ) {
                    addError($(':input[name=courier_town]', frm));
                    hasErrors = true;
                }
                
                if ($('#door_to_door').is(':checked')) {
                    if ( $(':input[name=c_address]', frm).val().match(/^\s*$/) ) {
                        addError($(':input[name=c_address]', frm));
                        hasErrors = true;
                    }    
                }
                
                if ($('#courier_legal_person').is(':checked')) {
                    if ( $(':input[name=clp_name]', frm).val().match(/^\s*$/) ) {
                        addError($(':input[name=clp_name]', frm));
                        hasErrors = true;
                    }
                    
                    if ( $(':input[name=clp_address]', frm).val().match(/^\s*$/) ) {
                        addError($(':input[name=clp_address]', frm));
                        hasErrors = true;
                    }
                    
                    if ( $(':input[name=clp_inn]', frm).val().match(/^\s*$/) ) {
                        addError($(':input[name=clp_inn]', frm));
                        hasErrors = true;
                    }
                    
                    if ( !$(':input[name=cnot_nds]', frm).is(':checked') && $(':input[name=clp_certificate]', frm).val().match(/^\s*$/) ) {
                        addError($(':input[name=clp_certificate]', frm));
                        hasErrors = true;
                    }
                }
        }
    }
    else {
        addError($(':input[name=shipping_method]+label', frm));
        hasErrors = true;
    }
    return hasErrors;
}

function orderSigninFormCheck(frm) {
    clearErrors(frm);
    var hasErrors = false;

    if ( !$(':input[name=email]', frm).val().match(/^[a-z0-9_\-\.]+@([a-z0-9_\-]+\.)+[a-z]{2,5}$/i) ) {
        addError($(':input[name=email]', frm));
        hasErrors = true;
    }

    if ( $(':input[name=password]', frm).val().match(/^\s*$/) ) {
        addError($(':input[name=password]', frm));
        hasErrors = true;
    }

    if ( hasErrors ) {
        $('li.error_title').show();
    }

    return !(hasErrors);
}

function signinFormCheck(frm) {

    clearErrors(frm);
    var hasErrors = false;

    if ( !$(':input[name=email]', frm).val().match(/^[a-z0-9_\-\.]+@([a-z0-9_\-]+\.)+[a-z]{2,5}$/i) ) {
        addError($(':input[name=email]', frm));
        hasErrors = true;
    }

    if ( $(':input[name=password]', frm).val().match(/^\s*$/) ) {
        addError($(':input[name=password]', frm));
        hasErrors = true;
    }

    return !hasErrors;
}

function personalFormCheck(frm) {

    clearErrors(frm);
    var hasErrors = false;

    if ( $(':input[name=firstname]', frm).val().match(/^\s*$/) ) {
        addError($(':input[name=firstname]', frm));
        hasErrors = true;
    }

    if ( !$(':input[name=email]', frm).val().match(/^[a-z0-9_\-\.]+@([a-z0-9_\-]+\.)+[a-z]{2,5}$/i) ) {
        addError($(':input[name=email]', frm));
        hasErrors = true;
    }

    if ( $(':input[name=city]', frm).val().match(/^\s*$/) ) {
        addError($(':input[name=city]', frm));
        hasErrors = true;
    }

    if ( !$(':input[name=passw]', frm).val().match(/^\s*$/) ) {
        if ( $(':input[name=passw_confirm]', frm).val().match(/^\s*$/) ||
             $(':input[name=passw]', frm).val() != $(':input[name=passw_confirm]', frm).val() ) {
            addError($(':input[name=passw_confirm]', frm));
            hasErrors = true;
        }
    }

    return !hasErrors;
}

function askQuestionFormCheck(frm) {

    clearErrors(frm);
    var hasErrors = false;

    if ( $(':input[name=fio]', frm).val().match(/^\s*$/) ) {
        addError($(':input[name=fio]', frm));
        hasErrors = true;
    }

    if ( !$(':input[name=email]', frm).val().match(/^[a-z0-9_\-\.]+@([a-z0-9_\-]+\.)+[a-z]{2,5}$/i) ) {
        addError($(':input[name=email]', frm));
        hasErrors = true;
    }

    if ( $(':input[name=question]', frm).val().match(/^\s*$/) ) {
        addError($(':input[name=question]', frm));
        hasErrors = true;
    }

    if ( $(':input[name=captcha]', frm).val().match(/^\s*$/) ) {
        addError($(':input[name=captcha]', frm));
        hasErrors = true;
    }

    return !hasErrors;
}

function askQuestionFormSubmit(frm) {

    if ( !askQuestionFormCheck(frm) ) {
        return false;
    }

    // Sending request
    var frm_data = {
        'fio': $(':input[name=fio]', frm).val(),
        'email': $(':input[name=email]', frm).val(),
        'question': $(':input[name=question]', frm).val(),
        'captcha': $(':input[name=captcha]', frm).val()
    };
    $.ajaxSetup(
        {
            dataType: 'json'
        }
    );
    $.post(
        '/ajax/ask-question.json',
        frm_data,
        function (json) {
            if ( json['error'] == '' ) {
                $('#ask_question .inner h5').html('Ваш вопрос был успешно отправлен.');
                $('#ask_question .inner form').html('<ul><li><input type="button" class="submit close" value="Закрыть окно" /></li></ul>');
                $('#ask_question .inner form .close').click(
                    function () {
                        $('div.popup').hide();
                        $('div.popup div.form').show();
                        $('div.popup div.done').hide();
                        $('div.popup div.form form').each(function() {
                            this.reset();
                            clearErrors(this);
                        });
                        $('div.popup div.form form input.submit').attr('disabled', false);
                    }
                );
            }
        }
    );
}

function restorePasswordFormCheck(frm) {

    clearErrors(frm);
    var hasErrors = false;

    if ( $(':input[name=passw]', frm).val().match(/^\s*$/) ) {
        addError($(':input[name=passw]', frm));
        hasErrors = true;
    }

    if ( $(':input[name=passw_confirm]', frm).val().match(/^\s*$/) ||
            $(':input[name=passw]', frm).val() != $(':input[name=passw_confirm]', frm).val() ) {
        addError($(':input[name=passw_confirm]', frm));
        hasErrors = true;
    }

    return !hasErrors;
}

function regionChange() {
    // Clearing all items
    var dom_shops = this.form['shop'];

    $('optgroup', dom_shops).remove();
    var cur_group = '';
    for ( var city in regions[this.value] ) {
        $(dom_shops).append($('<optgroup></optgroup>').attr('label', city));
        for ( i=0; i < regions[this.value][city].length; i++ ) {
            $('optgroup:last', dom_shops).append($('<option></option>').attr('value', regions[this.value][city][i]).text(regions[this.value][city][i]));
        }
    }
}

function forgotFormSubmit(frm) {

    clearErrors(frm);
    var hasErrors = false;

    if ( !$(':input[name=email]', frm).val().match(/^[a-z0-9_\-\.]+@([a-z0-9_\-]+\.)+[a-z]{2,5}$/i) ) {
        addError($(':input[name=email]', frm));
        hasErrors = true;
    }

    if ( !hasErrors ) {
        // Sending request
        var frm_data = {'email': $(':input[name=email]', frm).val()};
        $.ajaxSetup(
            {
                dataType: 'json'
            }
        );

        $('li.error_title', frm).hide();
        $.post(
            '/ajax/forgot-password.json',
            frm_data,
            function (json) {
                if ( json['error'] == '' ) {
                    var old_header = $('#forgot_password .inner h5').html();
                    $('#forgot_password .inner h5').html('На ваш почтовый ящик выслана<br />ссылка, по которой можно<br />восстановить пароль.');
                    $('#forgot_password div.form').hide();
                    $('#forgot_password div.done').show();
                    //$('#forgot_password .inner form').html('<ul><li><input type="button" class="submit close" value="Закрыть окно" /></li></ul>');
                    /*
                    $('#forgot_password .inner form .close').click(
                        function () {
                            $('div.popup').hide();
                            $('div.popup div.form').show();
                            $('div.popup div.done').hide();
                            $('#forgot_password .inner h5').html('Для получения нового пароля<br />введите свой e-mail');
                            $('div.popup div.form form').each(function() {
                                this.reset();
                                clearErrors(this);
                            });
                            $('div.popup div.form form input.submit').attr('disabled', false);
                        }
                    );
                    */
                }
                else {
                    $('li.error_title', frm).show();
                }
            }
        );
    }
}

function shippingChange() {
    var id = $(this).attr('id');
    switch (id) {
        case 'shipping_shop':
            paymentMethodChange();
            $('li[rel="courier_legal_person"], li[rel="door_to_door"]', '#order_form').hide();
            $('#order_form li[rel="shipping_shop"]').show();
            $('#order_form li[rel="shipping_post"]').hide();
            $('#order_form li[rel="shipping_courier"]').hide();
            break;
        case 'shipping_post':
            $('li[rel="shipping_shop"], li[rel="payment_method_noncash"], li[rel="legal_person"], li[rel="courier_legal_person"], li[rel="door_to_door"]', '#order_form').hide();
            $('#order_form li[rel="shipping_post"]').show();
            $('#order_form li[rel="shipping_courier"]').hide();
            break;
        case 'shipping_courier':
            $('li[rel="shipping_shop"], li[rel="payment_method_noncash"], li[rel="legal_person"]', '#order_form').hide();
            $('#order_form li[rel="shipping_post"]').hide();
            lpCourierChange();
            doorChange();
            $('#order_form li[rel="shipping_courier"]').show();
    }
}

function paymentMethodChange() {
    if ($('#payment_method_noncash').is(':selected')) {
        $('#order_form li[rel="payment_method_noncash"]').show();
        lpShopChange();
    }
    else {
        $('li[rel="payment_method_noncash"], li[rel="legal_person"]', '#order_form').hide();
    }
}

function lpShopChange() {
    if ($('#legal_person').is(':checked')) {
        $('#order_form li[rel="legal_person"]').show();
    }
    else {
        $('#order_form li[rel="legal_person"]').hide();
    }
}
function lpCourierChange() {
    if ($('#courier_legal_person').is(':checked')) {
        $('#order_form li[rel="courier_legal_person"]').show();
    }
    else {
        $('#order_form li[rel="courier_legal_person"]').hide();
    }
}
function doorChange() {
    if ($('#door_to_door').is(':checked')) {
        $('#order_form li[rel="door_to_door"]').show();
    }
    else {
        $('#order_form li[rel="door_to_door"]').hide();
    }
}
/**
 * Onload
 */
$(
    function () {
        new Slider($('#popular_and_new_goods'), 165);
        
        $('#header div.signin').click(
            function () {
                showPopup('#signin');
            }
        );

        $('.forgot_password').click(
            function () {
                showPopup('#forgot_password');
            }
        );


        $('#shops .toggle').click(
            function () {
                $('#shops').addClass('expanded');
            }
        );

        $('#shops .close').click(
            function () {
                $('#shops').removeClass('expanded');
            }
        );

        $('div.popup .close').click(
            function () {
                $('div.popup').hide();
                $('div.popup div.form').show();
                $('div.popup div.done').hide();
                $('div.popup div.form form').each(function() {
                    clearErrors(this);
                    this.reset();
                });
                $('div.popup div.form form input.submit').attr('disabled', false);
            }
        );

        $('#forgot_password .inner .close').unbind('click').click(
            function () {
                $('div.popup').hide();
                $('div.popup div.form').show();
                $('div.popup div.done').hide();
                $('#forgot_password .inner h5').html('Для получения нового пароля<br />введите свой e-mail');
                $('div.popup div.form form').each(function() {
                    this.reset();
                    clearErrors(this);
                });
                $('div.popup div.form form input.submit').attr('disabled', false);
            }
        );

        $('div.popup input.to_cart').click(
            function () {
                location.href = '/cart.html';
            }
        );

        $('#cart .delete div').hover(
            function () {
                $(this).addClass('hover');
            },
            function () {
                $(this).removeClass('hover');
            }
        );

        $('#back span').click(
            function () {
                history.go(-1);
            }
        )

        $('#order_form').submit(
            function () {
                return orderDefaultFormCheck(this);
            }
        );

        $('#signin form').submit(
            function () {
                return signinFormCheck(this);
            }
        );

        $('#signin_form').submit(
            function () {
                return signinFormCheck(this);
            }
        );

        $('#personal_form').submit(
            function () {
                return personalFormCheck(this);
            }
        );

        $('#forgot_password form').submit(
            function () {
                forgotFormSubmit(this);
                return false;
            }
        );

        $('#ask_question form').submit(
            function () {
                askQuestionFormSubmit(this);
                return false;
            }
        );

        $('#restore_password_form').submit(
            function () {
                return restorePasswordFormCheck(this);
            }
        );

        $('#cart .total input.quantity').keyup(quantityKeyUp);
        $('#cart .delete div').click(delGoodClick);

        $('#content input[name="registered_user"]').click(function () {
            $('#content .error_title').hide();
            redrawRegisteredUser();
        });

        $('#order_form select[name="region"]').change(regionChange);
        
        $('input[name="shipping_method"], input[name="legal_person"]', '#order_form').attr('checked', '');
  
        $('#order_form input[name="shipping_method"]').click(shippingChange);
        $('#order_form select[name="payment_method"]').change(paymentMethodChange);
        $('#legal_person').click(lpShopChange);
        $('#not_nds').click(
            function(){
                if ($(this).is(':checked')) {
                    $('#order_form input[name=lp_certificate]').attr('disabled', 'disabled');
                }
                else {
                    $('#order_form input[name=lp_certificate]').attr('disabled', '');
                }
            }
        );
        $('#cnot_nds').click(
            function(){
                if ($(this).is(':checked')) {
                    $(':input[name=clp_certificate]', '#order_form').attr('disabled', 'disabled');
                }
                else {
                    $(':input[name=clp_certificate]', '#order_form').attr('disabled', '');
                }
            }
        );  
        $('#courier_legal_person').click(lpCourierChange);
        $('#door_to_door').click(doorChange);
        
        adjastAdvertHeight();
        redrawRegisteredUser();

        $.preload(['bgs/to_cart.gif', 'icons/close.gif', 'bgs/popup-bottom.png', 'bgs/popup-top.png'], {base: '/media/images/'});

        $(window).resize(adjastAdvertHeight);

    }
);

$(window).load(function() {
   
    // Перечень идентификаторов тех блоков, в которых размещена реклама google AdManager
    var ad_containers = ['ad-list-top', 'ad-good-top', 'ad-main-footer', 'ad-footer'];
    
    for ( var i in ad_containers ) {
        // Проверяем, присутствует ли такой блок в документе
        if ( $('#'+ad_containers[i]).size() ) {
            if ( $('#'+ad_containers[i]).find('iframe').size() ) {
                trackAdLinks($('#'+ad_containers[i]).find('iframe').contents(), $('#'+ad_containers[i]).attr('rel'));
            } else {
                trackAdLinks($('#'+ad_containers[i]), $('#'+ad_containers[i]).attr('rel'));
            }
        }
    }
    
    /**
             * Функция для регистрации клика по рекламе
             */
    function trackAdLinks(obj, ad_id) {
        obj.find('a').bind('click', 
        function() {
            // Ярлык формируем в формате "идентификатор рекламного блока/Заголовок объявления/урл сайта куда ведет объявление"
            var text = '';
            if ( $(this).find('img').size() ) {
                // Если рекламный контент - изображение
                text = 'Изображение';
            } else if ( $(this).find('object').size() ) {
                // Если рекламный контент - флеш
                text = 'Флеш';
            } else {
                // Если рекламный контент - текст
                text = $(this).text();
            }
            
            var label = ad_id+'/'+text;
            // Пытаемся получить адрес перехода
            var href  = $(this).attr('href');
            var reg   = /adurl=http:\/\/([^\/&]+).*/;
            var dest  = href.match(reg);
            
            if ( !dest || undefined == dest[1] ) {
                label += '/undefined';
            } else {
                label += '/'+dest[1];
            }

            pageTracker._trackEvent("Реклама", "Клик на рекламе", label);
        });
    } // end of function trackAdLinks
    
});

// Object "cart" must be created before buy-button will draw
cart = new Cart;


