jQuery.noConflict();
(function($) {
    $(function() {
        var no_img_src = '/bikedetail/images/img_no_image.gif';
        
        /**
         * 検索実行
         */
        var access = window.access = function(page) {
            var params = {};
            params['page'] = page ? page : 1;
            var uri = "http://" + location.hostname + "/api/bike/access.json?"
                    + httpBuildQuery(params) + '&' + Math.random();
            $.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);
                    });
            }
            $("#access_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) {

			$("ul.checkboxList li label").hover(
			  function () {
				$(this).css("text-decoration","none");
			  }, 
			  function () {
				$(this).css("text-decoration","underline");
			  }
			);
			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()
        {
            $("#access_bike_box .list").carouFredSel({
                circular : false,
                infinite : false,
                items: 3,
                scroll: 3,
                auto: false,
                prev : {
                    button : "#access_prev",
                    key : "left",
                    items : 3,
                    easing : "easeInOutCubic",
                    duration : 1000
                },
                next : {
                    button : "#access_next",
                    key : "right",
                    items       : 3,
                    easing : "easeInOutCubic",
                    duration  : 1000
                },
                pagination : {
                    container   : "#access_bike_box_counter",
                    counter : true
                }
            });
        }
        
        // load access
        $('#access_bike_box')
            .each(function() {
                access();
            });
    });
})(jQuery);
