/**
 * @author Arturas Paleicikas <arturas.paleicikas@metasite.net>
 */

var MiniShops    = {
    cache: {},
    init: function(){
        var self = this;
        var $items    = $('#content div.box');

        $items.each(function(i,n){
            var $obj = $(n);

            self.initShare($obj);
        });

        $('p#item_details').each(function(i, n){
            self.initDetails($(n));
        });

        $('form#download').submit(function(e){
            self.initDownloadForm(e, $(this));
        });

        $('form#search_form').each(function(i, n){
           self.initSearchForm($(n));
        });


    },

    initShare: function($item)
    {
        var self = this;
        $item
            .find('a.__toggleShare')
            .click(function(){
                $box = $(this).parent().find('.share-links');
                if ($box.is(':visible'))
                {
                    $box.fadeOut();
                } else {
                    $box.fadeIn().unbind('click').click(function(){
                        $(this).fadeOut();
                    });
                }
            })
    },

    initDetails: function($item)
    {
        var self = this;

        $item
            .find('a.__showPhones')
                .click(function(){
                    var href = this.href;

                    if(self.cache[href])
                    {
                        self._popup(500, self.cache[href]);
                        self.initPhonesList();
                    }
                    else
                    {
                        $.get(href, function(data){
                            self.cache[href] = data;
                            self._popup(500, data);
                            self.initPhonesList();
                        });
                    }

                    return false;
                });
    },

    initPhonesList: function()
    {
        $('a.__phonesList')
                .click(function(){
                    var id = this.innerHTML;
                    $('#'+id).toggle();
                });

    },

    initDownloadForm: function(e, $form)
    {
        $form
            .removeClass('error')
            .find('span#error_message')
                .remove();

        if (!/^6\d{7}$/.test($('input#no', $form).val()))
        {
            $form
                .addClass('error')
                .find('fieldset.down')
                    .find('div.error_message').remove().end()
                .append('<div class="error_message" id="error_message">'
                    + $('input#no', $form).attr('rel')
                    + '</div>'
                );
            e.preventDefault();
            return false;
        }
    },

    initSearchForm: function($form)
    {
        $form.submit(function(e){
            if (!$.trim($form.find('input[type=text]').val()))
            {
                e.preventDefault();
                return false;
            }
        });
    },

    _popup: function(width, data, className){
        var msg = [];
        msg.push('<div id="addonPopup" class="green">');
            msg.push('<a href="javascript:;" class="close" onclick="$.unblockUI();">');
            msg.push('<img src="img/common/close.green.gif" alt="" />');
            msg.push('</a>');
            msg.push(data);
        msg.push('</div>');

        $.blockUI({
            css: {
                left:                '50%',
                marginLeft:            (-(width/2) + 'px'),
                marginTop:            '0',
                position:            'absolute',
                top:                '250px',
                padding:            0,
                width:                (width + 'px'),
                textAlign:            'left',
                color:                '#000',
                border:                0,
                backgroundColor:    '#fff',
                cursor:                'default',
                zIndex:                9999999
            },
            overlayCSS: {
                backgroundColor:    '#000',
                opacity:            '0.3',
                cursor:                'default',
                zIndex:                999999
            },
            message: msg.join('')
        });
    }
 };

 $(document).ready(function(){window.MiniShops.init();});