jQuery.noConflict();
(function($) {
    $(function() {
        var no_img_src = '/bikedetail/images/img_no_image.gif';

        /**
         * 検索実行
         */
        var recentry = window.recentry = function(page) {
            var params = {};
            params['page'] = page ? page : 1;
            var uri = "http://" + location.hostname + "/api/bike/recentry.json?"
                    + httpBuildQuery(params);
            $.getJSON(uri, function(results) {
                if (!results) {
                    return;
                }
                showList(results);
                setCarousel();
            });
        };
        
        /**
         * 検索結果を表示する
         */
        function showList(results) {
            var bikes = results.bikes;
            var rows = [];
            for (i = 0; i < bikes.length; i++) {
                rows.push(formatBike(bikes[i]));
            }
            var $rows = '';
            if (rows) {
                $rows = $(rows.join(''));
                $rows.find('> div > div > p.image > a > img')
                    .error(function() {
                        $(this).attr('src', no_img_src);
                    });
            }
            $("#recentry_bike_box .list").html($rows);

            // rollover
            $('.imgover').each(function(){
                this.osrc = $(this).attr('src');
                this.rollover = new Image();
                this.rollover.src = this.osrc.replace(/(\.gif|\.jpg|\.png)/, "_o$1");
            }).hover(function(){
                $(this).attr('src',this.rollover.src);
            },function(){
                $(this).attr('src',this.osrc);
            });
        }
        
        /**
         * 検索結果行をhtmlフォーマットして返却する
         */
        function formatBike(bike) {
            var soldoutIcon = weeklyicon = caricon = '';
            if (bike.SeiyakuDate) soldoutIcon = '<p style="padding-right:1px;"><img src="/common/images/img_off.gif" alt="Sold Out" /></p>';
            if (bike.isWeeklyArrival) weeklyicon = '<p style="padding-right:1px;"><img src="/common/images/img_week.gif" alt="New!!" /></p>';
            if (bike.Rec_flag) caricon = '<p style="padding-right:1px;"><img src="/common/images/img_car.gif" alt="おすすめ" /></p>';
            var row = [
                        ['<div class="itemContent">'].join(''),
                        ['<div class="leftItem">'].join(''),
                        ['<p class="image"><a href="/bikedetail/', bike.ZaikoTenpoCode , '/' , bike.ShoukaiNo, '"><img src="' , bike.ImageFileName1 , '?is=120,90" alt="' , bike.ShashuMei , '" width="120" /></a></p>'].join(''),
                        ['<p><img src="/common/images/txt_store.gif" alt="在庫店舗" /><span><a href="/shoplist/' , bike.ZaikoTenpoCode , '/">' , bike.BumonName , '</a></span></p>'].join(''),
                        ['</div>'].join(''),
                        ['<div class="rightItem">'].join(''),
                        ['<div class="imageList">', soldoutIcon, weeklyicon, caricon].join(''),
                        ['</div>'].join(''),
                        ['<p class="manufacturer">', bike.Maker, ''].join(''),
                        ['<span>'  , bike.ShashuMei , '</span></p>'].join(''),
                        ['<p class="price"><em>', showPrice(bike.Urine) , '</em><a href="/bikedetail/', bike.ZaikoTenpoCode , '/' , bike.ShoukaiNo, '"><img src="/images/btn_detail.gif" alt="詳細はこちら" class="imgover" /></a></p>'].join(''),
                        ['</div>'].join(''),
                        ['</div>'].join(''),
            ].join('');
            return '<li>' + row + '</li>';
        }
        
        /**
         * カルーセルをセットする
         * 
         * required:
         * jquery.carouFredSel.js
         * jquery.easing.js
         */
        function setCarousel()
        {
            $("#recentry_bike_box .list").carouFredSel({
                circular : false,
                infinite : false,
                items: 3,
                scroll: 3,
                auto: false,
                prev : {
                    button : "#recentry_prev",
                    key : "left",
                    items : 3,
                    easing : "easeInOutCubic",
                    duration : 1000
                },
                next : {
                    button : "#recentry_next",
                    key : "right",
                    items       : 3,
                    easing : "easeInOutCubic",
                    duration  : 1000
                },
                pagination : {
                    container   : "#recentry_bike_box_counter",
                    counter : true
                }
            });
        }

        // load recentry
        $('#recentry_bike_box')
            .each(function() {
                recentry();
            });
    });
})(jQuery);

