/*
bxSlider v2.0
Plugin developed by: Steven Wanderski
http://bxslider.com
http://stevenwanderski.com

Released under the GPL license:
http://www.gnu.org/licenses/gpl.html
*/


(function($){
    $.fn.bxSlider = function(options){

var defaults = {
alignment: 'horizontal',
controls: true, 
speed: 500,
pager: true,
pager_short: false,
pager_short_separator: ' / ',
margin: 0,
next_text: 'next',
next_image: '',
prev_text: 'prev',
prev_image: '',
auto: false,
pause: 3500,
auto_direction: 'next',
auto_hover: true,
auto_controls: false,
ticker: false,
ticker_controls: false,
ticker_direction: 'next',
ticker_hover: true,
stop_text: 'stop',
start_text: 'start',
wrapper_class: 'bxslider_wrap'
};

var o = $.extend(defaults, options);

return this.each(function(){
var $this = $(this);
var $kids = $this.children();
var l = $this.children().length;
var first = $this.children(':first').clone();
var last = $this.children(':last').clone();
var w=0, h=0, current_temp=0, pos=0, d=0;
var is_working = false, playing = true, tick_play = true;
var current = 1;
var ease = 'swing', side = '', t = '';
var ani = {};

$this.append(first).prepend(last);
$this.wrap('<div class="bxslider_container"></div>');
$this.parent().wrap('<div class="'+o.wrapper_class+'"></div>');

if(o.alignment == 'horizontal'){
$this.children().css({'float':'left','listStyle':'none', 'marginRight':o.margin});
w = first.outerWidth(true);
$this.css({'width': '99999px', 'position':'relative', 'left':-w});
$this.parent().css({'position':'relative', 'overflow':'hidden','width':w-o.margin});
}else if(o.alignment == 'vertical'){
$kids.each(function(){
if($(this).height() > h){h = $(this).height();}
});
w = first.outerWidth();
$this.children().css({'height':h, 'listStyle':'none', 'marginBottom':o.margin});
$this.css({'height':'99999px', 'width':w, 'position':'relative', 'top':-(h+o.margin)});
$this.parent().css({'position':'relative', 'overflow':'hidden', 'height':h})
}

if(o.pager && !o.ticker){
$this.parent().after('<div class="bx_pager"></div>');
if(!o.pager_short){
var $a;
$kids.each(function(index){
$a = $('<a href="#">'+(index+1)+'</a>');
$this.parent().siblings('.bx_pager').append($a);
$a.click(function(){
is_working = false;
tick_play = false;
$this.stop();
move_slide(index+1);
current = index+1;
if(o.auto){clearInterval(t); $this.parent().siblings('.auto_controls').find('a').html(o.start_text); playing=false;}
else if(o.ticker){$this.parent().siblings('.ticker_controls').find('a').html(o.start_text); playing=false;}
return false;
});
});
}else{
$this.parent().siblings('.bx_pager').append();
}
set_active(1);
}

if(o.controls && !o.ticker){
if(o.next_image != '' || o.prev_image != ''){$this.parent().after('<a class="prev" href="#"><img src="'+o.prev_image+'" /></a><a class="next" href="#"><img src="'+o.next_image+'" /></a>');}
else{$this.parent().after('<a class="prev" href="#">'+o.prev_text+'</a><a class="next" href="#">'+o.next_text+'</a>');}
$this.parent().siblings('.next').click(function(){
if(!is_working){move_slide(++current);}
// $(".homeShopProfName").text(current);
// $(".homeShopProfName").text($(".homeShopProfList li:eq("+current+")").attr("title"));
if(o.auto){clearInterval(t); $this.parent().siblings('.auto_controls').find('a').html(o.start_text); playing=false;}
return false;
});
$this.parent().siblings('.prev').click(function(){
if(!is_working){move_slide(--current);}
// $(".homeShopProfName").text(current);
// var hoge = $(".homeShopProfList li:eq("+current+")").attr("title");
// alert(hoge);
// $(".homeShopProfName").text($(".homeShopProfList li:eq("+current+")").attr("title"));
if(o.auto){clearInterval(t); $this.parent().siblings('.auto_controls').find('a').html(o.start_text); playing=false;}
return false;
});
}

if(o.auto && !o.ticker){
t=setInterval(function(){if(o.auto_direction == 'next'){move_slide(++current);}else{move_slide(--current);}}, o.pause);
// $(".homeShopProfName").text($(".homeShopProfList li:eq("+current+")").attr("title"));
//t=setInterval(function(){if(o.auto_direction == 'next'){
// move_slide(++current);
// $(".homeShopProfName").text($(".homeShopProfList li:eq("+current+")").attr("title"));
// }else{
// move_slide(--current);
// $(".homeShopProfName").text($(".homeShopProfList li:eq("+current+")").attr("title"));
// }}, o.pause);
if(o.auto_hover){
$this.hover(function(){clearInterval(t);},
function(){
if(playing){
t = setInterval(function(){
if(o.auto_direction == 'next'){move_slide(++current);}
else{move_slide(--current);}
}, o.pause);
}
});

}
if(o.auto_controls){
$this.parent().after('<div class="auto_controls"><a class="auto_link" href="#">'+o.stop_text+'</a></div>');
$this.parent().siblings('.auto_controls').find('a').click(function(){
if(playing){clearInterval(t); $(this).html(o.start_text); playing=false;}
else{
t = setInterval(function(){if(o.auto_direction == 'next'){move_slide(++current);}else{move_slide(--current);}}, o.pause);
$(this).html(o.stop_text);
playing=true;
}
return false;
});
}
}

if(o.ticker){
var tick_play = true;
tick_slide();

$this.hover(function(){$this.stop();}, 
function(){if(tick_play){tick_slide();}});

if(o.ticker_controls){
$this.parent().after('<div class="ticker_controls"><a class="ticker_link" href="#">'+o.stop_text+'</a></div>');
$this.parent().siblings('.ticker_controls').find('a').click(function(){
if(tick_play){$this.stop(); $(this).html(o.start_text); tick_play=false;}
else{
is_working = false;
$(this).html(o.stop_text)
tick_slide();
tick_play=true;
}
return false;
});
}
}

function tick_slide(){
if(o.ticker_direction == 'next' && o.alignment == 'horizontal'){
$this.animate({left: '-=5px'}, o.speed/5, 'linear', function(){
if(parseInt($this.css('left')) <= -((l+1)*w)){$this.css('left', -w);}
tick_slide();
});
}else if(o.ticker_direction == 'prev' && o.alignment == 'horizontal'){
$this.animate({left: '+=5px'}, o.speed/5, 'linear', function(){
if(parseInt($this.css('left')) >= -(w)){$this.css('left', -((l+1)*w));}
tick_slide();
});
}else if(o.ticker_direction == 'next' && o.alignment == 'vertical'){
$this.animate({top: '-=5px'}, o.speed/5, 'linear', function(){
if(parseInt($this.css('top')) <= -((l+1)*(h+o.margin))){$this.css('top', -(h+o.margin));}
tick_slide();
});
}else if(o.ticker_direction == 'prev' && o.alignment == 'vertical'){
$this.animate({top: '+=4px'}, o.speed/5, 'linear', function(){
if(parseInt($this.css('top')) > -(h+o.margin)){$this.css('top', -((l+1)*(h+o.margin-1)));}
tick_slide();
});
}

}

function move_slide(num){
if(o.ticker){ease='linear';}
if(!is_working){
if (o.alignment == 'horizontal'){d=w; side='left';}
else if (o.alignment == 'vertical'){d=h+o.margin; side='top';}
pos = num*d;
ani[side] = -pos;
is_working=true;
$this.animate(ani, o.speed, ease, function(){
is_working=false;
if(current>l){$this.css(side,-d); current=1;}
else if (current < 1){$this.css(side,-(d*l)); current=l;}
set_active(current);
});
}
}

function set_active(num){
if(o.pager && !o.pager_short){$this.parent().siblings('.bx_pager').find('a').removeClass('active').eq(num-1).addClass('active');}
else if(o.pager_short){$this.parent().siblings('.bx_pager').html(num+o.pager_short_separator+$kids.length);}
}

});
};

})(jQuery);


