jQuery.extend( jQuery.easing,{customInOut:function(x,t,b,c,d){var s=1.70158;if((t/=d/2)<1) return c/2*(t*t*(((s*=(1.525))+1)*t - s))+b;return c/2*((t-=2)*t*(((s*=(1.525))+1)*t+s)+2)+b;}});

$.fn.HeadLine = function(options){
	var options={time:10000,duration:500,easing:'customInOut'};$.extend(options,options);var $target=this;var $targetList=$target.find('.list ul');var count=$target.find('.list ul li').length;$targetList.width($targetList.find('li').width()*count);$target.find('p span.count').text('1/'+count);if(1<count){$target.find('a.next span').addClass('on');}$target.find('a.prev').click(function(){ClickChange('prev');return false;});$target.find('a.next').click(function(){ClickChange('next');return false;});function ClickChange(flag){if(!$target.find('a.'+flag+' span').hasClass('on')){return false;}else if($target.find('.list ul').is(':animated')){return false;}if(flag=='prev'){$targetList.stop(false,true).animate({'left':'+='+$targetList.find('li').width()},{duration:options.duration,easing:options.easing});}else if(flag=='next'){$targetList.stop(false,true).animate({'left':'-='+$targetList.find('li').width()},{duration:options.duration,easing:options.easing});}CountChange(flag);}var num=1;function CountChange(flag){var numArr=$target.find('p span.count').text().split('/');if(flag=='next'){num=Number(numArr[0])+1;}else if(flag=='prev'){num=Number(numArr[0])-1;}$target.find('a.prev span,a.next span').addClass('on');if(num==1){$target.find('a.prev span').removeClass('on');}else if(num==count){$target.find('a.next span').removeClass('on');}$target.find('p span.count').text(num+'/'+count);}function AutoSlide(){if(num==count){$targetList.stop(false,true).animate({'left':'0'},{duration:options.duration,easing:options.easing});$target.find('p span.count').text('1/'+count);$target.find('a.prev span,a.next span').addClass('on');$target.find('a.prev span').removeClass('on');num=1;}else{ClickChange('next');}setTimeout(function(){AutoSlide();},options.time);}
}
$.fn.Slider = function(Flie,options){
	var options = $.extend({
		duration:800,
		easing:'easeOutExpo',
		type:'slider',
		auto:false,
		auto_time:10000,
		navigation:false,
		navi_type:'text',
		navi_prev:'',
		navi_next:'',
		count:true
	},options);
	var OutPut,ListWidth,ListTotal;
	var $Target = this;
	var count = 1;
	
	$.ajax({
		url:Flie,
		dataType:'xml',
		success:function(data){GetData(data)},
		error:function(xml){alert('XMLファイルがありません。');},
		complete:function(){setTimeout(function(){PreLoader();},200);}
	});
	
	if($.browser.msie && parseInt($.browser.version)==7){
		var NotBrowser=false;
	}else if($.browser.msie && parseInt($.browser.version)==6){
		var NotBrowser=false;
	}else{
		var NotBrowser=true;
	}
	
	function GetData(data){
		$Target.find('.inside').empty();
		OutPut='';
		OutPut+='<ul>';
		$(data).find('channel').each(function(i){
			OutPut+='<li>';
			$(this).find('item').each(function(){
				OutPut+='<a href="'+$(this).find('link').text()+'" target="'+$(this).find('link').attr('target')+'" title="'+$(this).find('title').text()+'">';
				OutPut+='<img src="'+$(this).find('img').text()+'" width="'+$(this).find('img').attr('width')+'" height="'+$(this).find('img').attr('height')+'" alt="'+$(this).find('title').text()+'"/>';
				OutPut+='</a>';});OutPut+='</li>';
		});
		OutPut+='</ul>';
		$Target.find('.inside').html(OutPut);
		ListWidth=$Target.find('.inside ul li').outerWidth({margin:true});
		ListTotal=$Target.find('.inside ul li').length;
		if(options.type=='slider'){
			$Target.find('.inside').css('opacity','0').find('ul').width(ListWidth*ListTotal);
		}else if(options.type=='fade'){
			$Target.find('.inside').css('opacity','0');
			$Target.find('.inside ul').css({'width':ListWidth,'position':'relative'});
			$Target.find('.inside ul li').each(function(i){
				$(this).css({'opacity':'0','position':'absolute','top':'0','left':'0','z-index':ListTotal-i});
				$(this).find('a').css({'width':$(this).find('a img').width()});
			});
			$Target.find('.inside ul li').eq(0).css({'opacity':'1'});
			count=2;
		}
	}
	
	function PreLoader(){
		if(options.navigation==true){
			var Navi='';
			if(options.navi_type=='img'){
				Navi+='<p class="prev"><a href="#"><img src="'+options.navi_prev+'" alt="戻る" class="rover"/></a></p>';
				Navi+='<p class="next"><a href="#"><img src="'+options.navi_next+'" alt="次へ" class="rover"/></a></p>';
			}else{
				Navi+='<p class="prev"><a href="#">'+options.navi_prev+'</a></p>';
				Navi+='<p class="next"><a href="#">'+options.navi_next+'</a></p>';
			}
			$Target.find('.inside').append(Navi);
			$.library.rollover();
		}
		$Target.find('.inside').animate({'opacity':'1'},{duration:options.duration,easing:options.easing,complete:function(){
			PagerIcon();
			if(options.navigation==true){
				NaviGation();
			}
		}});
	}
	
	function NaviGation(){
		$Target.find('.inside p.prev').click(function(){
			if($Target.find('.inside ul').is(':animated')){
				return false;
			}
			if(count==1){
				count=ListTotal;
			}else{
				count=count-1;
			}
			SlideMove(count);
			return false;
		});
		$Target.find('.inside p.next').click(function(){
			if($Target.find('.inside ul').is(':animated')){
				return false;
			}
			if(count>=ListTotal){
				count=1;
			}else{
				count=count+1;
			}
			SlideMove(count);
			return false;
		});
	}
	
	function PagerIcon(){
		var PaagerIcon='';
		$Target.find('.pager').empty();
		for(i=1;i<=ListTotal;i++){
			PaagerIcon+='<li><a href="#">'+i+'</a></li>';
		}
		$Target.find('.pager').html(PaagerIcon).width($Target.find('.pager li').outerWidth({margin:true})*$Target.find('.pager li').length).find('li').css('opacity','0').filter(':first').find('a').addClass('active');
		var num=0;
		var int=setInterval(function(){
			if(num==$Target.find('.pager li').length){
				clearInterval(int);
				AutoSlid();
				if(NotBrowser !=false){
					Rover();
				}
				$Target.find('.pager li a').click(function(){
					SlideMove($(this).text());return false;});
			}else{
				$Target.find('.pager li').eq(num).stop(false,true).animate({'opacity':'1'},{duration:options.duration,easing:options.easing});
			}
			num++;
		},100);
	}
	
	function SlideMove(Num){
		count=Num;
		$Target.find('.pager li a').removeClass('active').eq(Num-1).addClass('active');
		if(options.type=='slider'){
			var ThisMove=(ListWidth*Num)-ListWidth;
			$Target.find('.inside ul').stop(false,true).animate({'left':-ThisMove},{duration:options.duration,easing:options.easing});
		}else if(options.type=='fade'){
			$Target.find('.inside ul li').not(':eq('+(count-1)+')').css('z-index','1');
			$Target.find('.inside ul li').filter(':eq('+(count-1)+')').css('z-index','3');
			$Target.find('.inside ul li').stop(false,true).animate({'opacity':'0'},{duration:options.duration,easing:options.easing});
			$Target.find('.inside ul li').filter(':eq('+(count-1)+')').stop(false,true).animate({'opacity':'1'},{duration:options.duration,easing:options.easing});
		}
	}
	function AutoSlid(){
		if(options.auto==true){
			function AutoMove(){
				j=setInterval(function(){
					if(count>ListTotal){
						count=1;
					}
					SlideMove(count);
					count++;
				},options.auto_time);
			}
			var j='';AutoMove();
			$Target.find('.inside ul li').hover(function(){
				clearInterval(j);
			},function(){AutoMove();});
		}
	}
	
	function Rover(){
		$Target.find('.inside ul li a').each(function(){
			$(this).filter('a').css({'position':'relative','width':$(this).find('img').width(),'height':$(this).find('img').height()});
			$(this).find('img').css({'position':'absolute','top':'0','left':'0'});
			var $Clone='';
			$(this).find('img').each(function(){
				$Clone=$(this).clone().attr('src',$(this).attr('src').replace(".jpg","_on.jpg")).addClass('clone');
			});
			$(this).find('img').css({'opacity':'1','z-index':'1'});
			$Clone.css({'opacity':'0','z-index':'2'});
			$(this).find('img').after($Clone);
			$(this).hover(function(){
				$(this).find('.clone').stop(false,true).animate({'z-index':'2','opacity':'1'},{duration:options.duration,easing:options.easing});
			},function(){
				$(this).find('.clone').stop(false,true).animate({'z-index':'1','opacity':'0'},{duration:options.duration,easing:options.easing});
			});
		});
	}
}
