Asiik.Colors = function() {

    var $wrap = $(document.getElementById('color-selector'));
    var $list = $wrap.find('.color-selector-list');
    var $selector = $wrap.find('.color-selector');
    var $preview = $wrap.find('.color-preview');
    var $form = $wrap.find('.color-form');

    var prefix = '';

    function _init_() {
        $list.find('a').each(function() {
            this._$colors = $(this).parent().find('ul').remove();
        }).click(serieLinkClickHandler)
            .eq(0).trigger('click');
        if ($list.length) {
            prefix = 'RAL ';
        }
        setupSelectorLinks();
        if ((jQuery.browser.msie) && (jQuery.browser.version < 9)) {
            $selector.addClass('ie-selector');
        }
    }

    function setupSelectorLinks() {
        $selector.find('li').click(changeColorHandler)
            .eq(0).trigger('click');
    }

    function serieLinkClickHandler() {
        var $link = $(this);
        if (!$link.hasClass('active')) {
            $list.find('a.active').removeClass('active');
            $link.addClass('active');
            $selector.empty().append(this._$colors);
            setupSelectorLinks();
        }

        return false;
    }

    function changeColorHandler() {
        var $item = $(this);
        var bg = $item.css('backgroundColor') + ' ' + $item.css('backgroundImage') + ' 0 0 repeat';
        $preview.children('div').css('background', bg);
        var txt = prefix + $item.text().trim();
        $preview.find('h2').html(txt);
        $form.find('input[name="color"]').val(txt);
    }

    _init_();

}

