var actions = {

    'load_config':function(data) {
        if(data.displayItems !== undefined){
            displayItems = data.displayItems;
        }
        if(data.currency !== undefined){
            currency = data.currency;
        }
        if (rate[currency] !== 1) {
            ajaxExchange('exchange?from=' + currency + '&action=rateAction', '', 'post');
        }
    },

    'rateAction':function(data) {
        rate = data;
    },

    'authorization':function(data) {
        if (data === 'success') {
            $('body').css('display', 'block');
            ajaxExchange('shops', '', 'post');
            ajaxExchange('config?load', '', 'post');
            ajaxExchange('userinfo?action=sidebar', '', 'post');
        } else {
            window.location.href = '/start.html';
        }
        return false;
    },

    'authorization_error':function(data) {
        $('form[action="authorization"] .error').remove();
        $('form[action="authorization"]').append('<span class="error">' + data + '</span>');
    },

    'sidebar':function(data) {
        $('#left').append(data);
    },

    'message_paste':function(data) {
        $('#content .text').html(data);
        return $('#content .text');
    },

    'redirect':function(data) {
        window.location.replace(data);
        return false;
    },

    'paste':function(data) {
        $('#content .text').html(data);
        $('.currency-select option[value="' + currency + '"]').attr('selected', 'selected');
        return $('#content .text');
    },

    'info':function(data) {
        $('#content .text .block').html(data);
        return $('#content .text');
    },

    'allNews':function(data) {
        $('#content .text').html('<div class="title">Новости</div><div class="block"></div>');
        for (var i in data) {
            $('#content .text .block').append('<div class="news-block"><div class="news-date">' + data[i].date + ': <span class="news-title">' + data[i].name + '</span></div><div class="news-description">' + data[i].description + '</p></div><div class="news-full"><a href="news?id=' + data[i].id + '">Подробнее...</a></div></div>');
        }
        return $('#content .text');
    },

    'get_shops':function(data) {
        for (var i in data[0]) {
            if (data[0][i].name !== false && data[0][i].name !== '') {
                $('#head .search form[action="shop"] div select[name="shop"],#head .search form[action="item"] div select[name="shop"]').append('<option value="' + data[0][i].name + '">' + data[0][i].name + '</option>');
            }
            $('#head .search form[action="shop"] div select[name="shop"]').parent().after('<div><label for="_categorys_' + data[0][i].name + '"></label><select class="categorys" style="display:none" id="_categorys_' + data[0][i].name + '" rel="' + data[0][i].name + '"></select></div>');
            for (var j in data[0][i].categorys) {
                $('#head .search form[action="shop"] div select[rel="' + data[0][i].name + '"]').append('<option value="' + data[0][i].categorys[j].id + '">' + data[0][i].categorys[j].text + '</option>');
            }
        }
        for (var k in data[1]) {
            $('#head .search form[action="shop"] div select[name="order"]').append('<option value="' + k + '">' + data[1][k] + '</option>');
        }
        checkUrlInterval = setInterval(checkUrl, 200);
    },

    'search':function(data) {
        $('#content .text').html();
        var block = $('<div class="' + displayItems + '"><div class="list"></div></div>').appendTo('#content .text');
        block.prepend('<div class="pages-total-search"><div class="display-button"><a class="display-line" title="Список" href="#"></a><a class="display-tile" title="Плитка" href="#" rel=""></a></div></div>');
        if (displayItems === 'block-line') {
            $('.display-line').attr('rel', 'active');
        } else {
            $('.display-tile').attr('rel', 'active');
        }
        if (data.count.total !== false && data.count.total !== '') {
            block.find('.pages-total-search').prepend('<span class="total-search">Всего найдено: ' + data.count.total + '</span><br />');
        }
        if (data.shop !== '' && data.shop !== false) {
            block.prepend('<a href="categorys?shop=' + data.shop + '"><img src="img/' + data.shop + '_logo.png" class="logo-shop" /></a>');
        }
        block.find('.list').before('<div class="item-top"><div class="item-top-image">Изображение</div><div class="item-top-title">Наименование</div><div class="item-top-count">Количество<br /> ставок</div><div class="item-top-bids">Последняя<br /> ставка</div><div class="item-top-price">Блиц-цена</div><div class="item-top-time">Время до<br /> окончания</div></div>');
        for (var i in data.items) {
            block.find('.list').append('<div class="item"></div>');
            if (data.items[i].image !== '' && data.items[i].title !== false) {
                block.find('.item').eq(i).append('<a href="#" class="photo-border"><div class="photo-frame"><img src="' + data.items[i].image + '" /></div></a>');
            } else {
                block.find('.item').eq(i).append('<a href="#" class="photo-border"><div class="photo-frame"><img src="img/question.png" /></div></a>');
            }
            if (data.items[i].title !== '' && data.items[i].title !== false) {
                block.find('.item').eq(i).append('<div class="title"><a href="#">' + data.items[i].title + '</a></div>');
            } else {
                block.find('.item').eq(i).append('<div class="title"><a href="#">---</a></div>');
            }
            if (data.items[i].link !== '' && data.shop !== '' && data.items[i].link !== false && data.shop !== false) {
                var link = 'item?shop=' + data.shop + '&link=' + data.items[i].link;
                block.find('.item').eq(i).find('.photo-border').attr('href', link);
                block.find('.item').eq(i).find('.title a').attr('href', link);
            }
            if (data.items[i].count_bid !== '' && data.items[i].count_bid !== false) {
                block.find('.item').eq(i).append('<div class="bids-count">' + data.items[i].count_bid + '</div>');
            } else {
                block.find('.item').eq(i).append('<div class="bids-count">---</div>');
            }
            if (data.items[i].last_bid !== '' && data.items[i].last_bid !== false) {
                block.find('.item').eq(i).append('<div class="bids-last">' + data.items[i].last_bid + '</div>');
                if (data.items[i].currency !== '' && data.items[i].currency !== false) {
                    block.find('.item').eq(i).find('.bids-last').append(' ' + data.items[i].currency);
                }
                if (rate[data.items[i].currency] !== 1 && rate[data.items[i].currency] !== undefined) {
                    block.find('.item').eq(i).find('.bids-last').append('</br>' + ( +data.items[i].last_bid / rate[data.items[i].currency]).toFixed(2) + ' ' + currency);
                }
            } else {
                block.find('.item').eq(i).append('<div class="bids-last-none">---</div>');
            }
            if (data.items[i].price !== '' && data.items[i].price !== false) {
                block.find('.item').eq(i).append('<div class="price">' + data.items[i].price + '</div>');
                if (data.items[i].currency !== '' && data.items[i].currency !== false) {
                    block.find('.item').eq(i).find('.price').append(' ' + data.items[i].currency);
                }
                if (rate[data.items[i].currency] !== 1 && rate[data.items[i].currency] !== undefined) {
                    block.find('.item').eq(i).find('.price').append('</br>' + ( +data.items[i].price / rate[data.items[i].currency]).toFixed(2) + ' ' + currency);
                }
            } else {
                block.find('.item').eq(i).append('<div class="price-none">---</div>');
            }
            if (data.items[i].time !== '' && data.items[i].time !== false) {
                var days = Math.floor((+data.items[i].time) / 86400);
                var hours = Math.floor((+data.items[i].time - (days * 86400)) / 3600);
                var minutes = Math.floor(((+data.items[i].time) - (days * 86400) - (hours * 3600)) / 60);
                var seconds = (+data.items[i].time) - (days * 86400) - (hours * 3600) - (minutes * 60);
                block.find('.item').eq(i).append('<div class="time">' + days + 'д' + ' ' + hours + 'ч' + ' ' + minutes + 'м' + ' ' + seconds + 'с' + '</div>');
            } else {
                block.find('.item').eq(i).append('<div class="time">---</div>');
            }
        }
        block.find('.pages-total-search').append('<span class="pages"></span>');
        block.append('<span class="pages"></span>');
        if (data.pages.list.length !== 0) {
            for (var k in data.pages.list) {
                block.find('.pages').append('<a href="shop?shop=' + data.shop + '&link=' + encodeURIComponent(data.pages.list[k].replace(/&amp;/g, "\&")) + '">' + k + '</a> ');
                if (+ k + 1 === +data.pages.current) {
                    block.find('.pages').append('<span>' + data.pages.current + ' </span>');
                }
            }
            if (data.pages.current !== false && data.pages.current !== '' && data.pages.current === '1') {
                block.find('.pages').prepend('<span>1 </span>');
                block.find('.pages').append('<a href="shop?shop=' + data.shop + '&link=' + encodeURIComponent(data.pages.list[+data.pages.current + 1].replace(/&amp;/g, "\&")) + '">>></a>');
            } else if (data.pages.list[+data.pages.current + 1].length !== 0) {
                block.find('.pages').append('<a href="shop?shop=' + data.shop + '&link=' + encodeURIComponent(data.pages.list[+data.pages.current + 1].replace(/&amp;/g, "\&")) + '">>></a>');
                block.find('.pages').prepend('<a href="shop?shop=' + data.shop + '&link=' + encodeURIComponent(data.pages.list[+data.pages.current - 1].replace(/&amp;/g, "\&")) + '"><<</a>');
            }
        }
        if (!allFilter) {
            $('#head .search form[action="shop"] .filter').fadeIn('300');
        }
        return $('#content .text');
    },

    'searchAll':function(data) {
        for (var i in data.shop) {
            var parameters = {};
            parameters.shop = data.shop[i];
            parameters.text = data.text;
            parameters.order = data.order;
            parameters.categorys = data.categorys;
            ajaxExchange('shop', parameters, 'post');
        }
        allFilter = true;
        return false;
    },

    'delivery_methods':function(data) {
        $('select[name="delivery"] option').remove();
        for (var i in data) {
            $('select[name="delivery"]').append('<option value="' + i + '">' + data[i] + '</option>');
        }
    },

    'delivery_result':function(data) {
        $('.delivery .total').html('Итого: <span>' + data + '</span>');
    },

    'item':function(data) {
        var block = $('<div class="block-item"></div>').appendTo('#content .text');
        if (data.shop !== '' && data.shop !== false) {
            block.prepend('<a href="#" class="back">Назад</a><a href="categorys?shop=' + data.shop + '"><img src="img/' + data.shop + '_logo.png" class="logo-shop" /></a>');
        }
        if (data.title !== '' && data.title !== false) {
            block.append('<div class="title">' + data.title + '</div>');
        } else {
            block.append('<div class="title">---</div>');
        }
        if (data.images.length !== 0) {
            if (data.images[0][1] !== undefined) {
                block.append('<div class="images"><a class="photo-border" href="' + data.images[0][1] + '" rel="prettyPhoto[pp_gal]" title=""><div class="photo-frame"><img src="' + data.images[0][1] + '" /></div></a><div class="photobank"></div><div class="photogal"></div></div>');
            } else {
                block.append('<div class="images"><a class="photo-border" href="' + data.images[0][0] + '" rel="prettyPhoto[pp_gal]" title=""><div class="photo-frame"><img src="' + data.images[0][0] + '" /></div></a><div class="photobank"></div><div class="photogal"></div></div>');
            }
            for (var i in data.images) {
                block.find('.photobank').append('<a href="#" rel="' + i + '"><div><img src="' + data.images[i][0] + '" /></div></a>');
                if (data.images[i][1] !== undefined) {
                    block.find('.photogal').append('<a href="' + data.images[i][1] + '" rel="prettyPhoto[pp_gal]" title=""></a>');
                } else {
                    block.find('.photogal').append('<a href="' + data.images[i][0] + '" rel="prettyPhoto[pp_gal]" title=""></a>');
                }
                if (i === '0') {
                    block.find('.photobank a').addClass('active');
                    block.find('.photogal a').attr('rel', '');
                }
            }
        } else {
            block.append('<div class="images"><a class="photo-border"><div class="photo-frame"><img src="img/question.png" /></div></a></div>');
        }
        if (data.condition !== '' && data.condition !== false) {
            block.append('<div class="condition">Состояние предмета: <span>' + data.condition + '</span></div>');
        } else {
            block.append('<div class="condition">Состояние предмета: <span>---</span></div>');
        }
        if (data.seller.name !== '' && data.seller.name !== false) {
            block.append('<div class="seller">Продавец: <a href="#">' + data.seller.name + '</a></div>');
            if (data.seller.link !== '' && data.seller.link !== false) {
                block.find('.seller a').attr('href', data.seller.link);
            }
            if (data.seller.rating !== '' && data.seller.rating !== false) {
                block.find('.seller a').append('<span> (рейтинг: ' + data.seller.rating + ')</span>');
            }
        } else {
            block.append('<div class="condition">Продавец: <span>---</span></div>');
        }
        if (data.bids.leader !== '' && data.bids.leader !== false) {
            block.append('<div class="bids-leader">Лидер: <span>' + data.bids.leader + '</span></div>');
        } else {
            block.append('<div class="bids-leader">Лидер: <span>---</span></div>');
        }
        if (data.shipping !== '' && data.shipping !== false) {
            block.append('<div class="shipping">Доставка: <span>' + data.shipping + '</span></div>');
        } else {
            block.append('<div class="shipping">Доставка: <span>---</span></div>');
        }
        if (data.location !== '' && data.location !== false) {
            block.append('<div class="location">Местоположение: <span>' + data.location + '</span></div>');
        } else {
            block.append('<div class="location">Местоположение: <span>---</span></div>');
        }
        if (data.number !== '' && data.number !== false) {
            block.append('<div class="number">Номер лота: <span>' + data.number + '</span></div>');
        } else {
            block.append('<div class="number">Номер лота: <span>---</span></div>');
        }
        if (data.bids.count !== '' && data.bids.count !== false) {
            block.append('<div class="bids-count">История ставок: <span>' + data.bids.count + '</span></div>');
        } else {
            block.append('<div class="bids-count">История ставок: <span>---</span></div>');
        }
        if (data.time.current !== '' && data.time.current !== false && data.time.current !== 'infinity' && data.time.end !== '' && data.time.end !== false && data.time.end !== 'infinity') {
            var time = +data.time.end - +data.time.current;
            var days = Math.floor(time / 86400);
            var hours = Math.floor((time - (days * 86400)) / 3600);
            var minutes = Math.floor((time - (days * 86400) - (hours * 3600)) / 60);
            var seconds = time - (days * 86400) - (hours * 3600) - (minutes * 60);
            var date = new Date();
            date.setTime(+data.time.end * 1000);
            var finishDate = date.toLocaleString();
            block.append('<div class="time">Время до окончания: <span>' + days + 'д' + ' ' + hours + 'ч' + ' ' + minutes + 'м' + ' ' + seconds + 'с' + ' (' + finishDate + ', Московское время)</span></div>');
            var countdown = setInterval(function() {
                time = time - 1;
                if (time >= 0) {
                    days = Math.floor(time / 86400);
                    hours = Math.floor((time - (days * 86400)) / 3600);
                    minutes = Math.floor((time - (days * 86400) - (hours * 3600)) / 60);
                    seconds = time - (days * 86400) - (hours * 3600) - (minutes * 60);
                    block.find('.time span').html(days + 'д' + ' ' + hours + 'ч' + ' ' + minutes + 'м' + ' ' + seconds + 'с' + ' (' + finishDate + ', Московское время)');
                } else {
                    block.find('.time span').html('торги закончены ('+ finishDate +', Московское время)');
                    block.find('form[action="place_bid"], form[action="buy_now"]').fadeOut('300');
                    clearInterval(countdown);
                }
            }, 1000);
        } else {
            block.append('<div class="time">Время до окончания: <span>---</span></div>');
        }
        if (data.link !== '' && data.link !== false) {
            block.append('<div class="original-link"><a href="' + data.link + '">Ссылка на оригинальную страницу лота</a></div>');
        }
        block.append('<div class="bids-list"><div class="bid"></div><form action="place_bid" method="get"><div><label for="_bid"></label><span>Ваша ставка: </span><input type="text" name="bid" id="_bid" /><span class="currency"></span></div><div><label for="_lot"></label><input type="hidden" name="lot" id="_lot" /></div><div><label for="_shop"></label><input type="hidden" name="shop" id="_shop" /></div><div><label for="_currency"></label><input type="hidden" name="currency" id="_currency" /></div><div><input type="submit" value="Сделать ставку" class="submit" /></div></form></div>');
        block.append('<div class="price-list"><div class="price"></div><form action="buy_now" method="get"><div><label for="_price"></label><input type="hidden" name="price" id="_price" /></div><div><label for="_price-lot"></label><input type="hidden" name="lot" id="_price-lot" /></div><div><label for="_price-shop"></label><input type="hidden" name="shop" id="_price-shop" /></div><div><label for="_price-currency"></label><input type="hidden" name="currency" id="_price-currency" /></div><div><input type="submit" value="Купить сейчас!" class="submit" /></div></form></div>');
        block.append('<a href="#" class="delivery-link">Расчет стоимости</a><div class="delivery"><form action="calculate_delivery" method="post"><div><label for="_calculate"></label><input type="hidden" name="calculate" id="_calculate" value="true" /></div><div class="line"><label for="_deep"></label><span>Длина: </span><input type="text" name="deep" id="_deep" /></div><div class="line"><label for="_height"></label><span>Высота: </span><input type="text" name="height" id="_height" /></div><div class="line"><label for="_width"></label><span>Ширина: </span><input type="text" name="width" id="_width" /></div><div class="line"><label for="_weight"></label><span>Вес: </span><input type="text" name="weight" id="_weight" /></div><div class="line"><label for="_price"></label><span>Цена: </span><input type="text" name="price" id="_price" /></div><br /><div class="line"><label for="_delivery"></label><span>Способ доставки: </span><select name="delivery" id="_delivery"></select></div><div class="total"></div><div><input type="submit" value="Расчитать" class="submit" /></div></form></div>');
        if (+data.bids.count === 0) {
            if (data.bids.start !== false && data.bids.start !== '') {
                block.find('.bids-list .bid').html('Начальная ставка: <span>' + data.bids.start + '</span>');
                block.find('.bids-list form input[name="bid"]').val(data.bids.start);
                block.find('.bids-list form').append('<span class="step">(Минимальная следующая ставка: ' + data.bids.start + ' ' + data.currency + '</span>');
                block.find('.bids-list').css('display', 'block');
                if (rate[data.currency] !== 1 && rate[data.currency] !== undefined) {
                    block.find('.bids-list .bid span').after(' (<span>' + ( +data.bids.start / rate[data.currency]).toFixed(2) + '</span> ' + currency + ')');
                    block.find('..bids-list form .step').append(' (' + ( +data.bids.start / rate[data.currency]).toFixed(2) + ' ' + currency + '))');
                }
            }
        } else {
            var currentBid = '';
            if (data.bids.curr !== false && data.bids.curr !== '' && data.bids.curr !== undefined) {
                currentBid = +data.bids.curr;
            }
            if (data.bids.step !== false && data.bids.step !== '' && data.bids.step !== undefined) {
                currentBid = currentBid + +data.bids.step;
            }
            if (currentBid != '') {
                block.find('.bids-list .bid').html('Текущая ставка: <span>' + data.bids.curr + '</span>');
                block.find('.bids-list form input[name="bid"]').val(currentBid.toFixed(2));
                block.find('.bids-list form').append('<span class="step">(Минимальная следующая ставка: ' + currentBid.toFixed(2) + ' ' + data.currency + '</span>');
                block.find('.bids-list').css('display', 'block');
                if (rate[data.currency] !== 1 && rate[data.currency] !== undefined) {
                    block.find('.bids-list .bid span').after(' (<span>' + ( +data.bids.curr / rate[data.currency]).toFixed(2) + '</span> ' + currency + ')');
                    block.find('..bids-list form .step').append(' (' + ( currentBid / rate[data.currency]).toFixed(2) + ' ' + currency + '))');
                }
            }
        }
        if (data.price !== false && data.price !== '') {
            block.find('.price-list .price').html('Цена: <span>' + data.price + '</span>');
            block.find('.price-list').css('display', 'block');
            block.find('.price-list form input[name="price"]').val(data.price);
            if (rate[data.currency] !== 1 && rate[data.currency] !== undefined) {
                block.find('.price-list .price span').after(' (<span>' + ( +data.price / rate[data.currency]).toFixed(2) + '</span> ' + currency + ')');
            }
        }
        if (data.bids.shop !== false && data.bids.shop !== '') {
            block.find('.bids-list form input[name="shop"],.price-list form input[name="shop"]').val(data.shop);
        }
        if (data.bids.number !== false && data.bids.number !== '') {
            block.find('.bids-list form input[name="lot"],.price-list form input[name="lot"]').val(data.number);
        }
        if (data.bids.currency !== false && data.bids.currency !== '') {
            block.find('.bids-list form input[name="currency"],.price-list form input[name="currency"]').val(data.currency);
            block.find('.bids-list form .currency').html(' ' + data.currency);
            block.find('.bids-list .bid span:first,.price-list .price span:first').after(' ' + data.currency);
        }
        block.append('<div class="description"></div>');
        if (data.description !== false && data.description !== '') {
            var tmpDescription = $(data.description);
            tmpDescription.find('object,script,meta,a[href="javascript:;"]').remove();
            tmpDescription.find('*').removeClass();
            translate(block.find('.description').html(tmpDescription[0]));
        }
        ajaxExchange('calculate_delivery', '', 'post');
        $("a[rel^='prettyPhoto']").prettyPhoto({social_tools:'',deeplinking:false});
        return $('.block-item');
    },

    'pasteRegistrationForm':function(data) {
        $('#content .text').html(data);
        return false;
    },

    'validationFormError':function(data) {
        $('#content .text .error').remove();
        for (var i in data) {
            $('#content .text input[name="' + i + '"]').after('<span class="error">' + data[i] + '</span>');
        }
        return false;
    }

};
