/* slider.js */

(function($) {
	$.slider = {
		switchbtn: function() {
			//スライドで表示・非表示
			$("#Footer div.footernavi p.switch img").css('cursor','pointer');
			$("#Slider").hide();
			$("#Footer div.footernavi p.switch img").hover(function(){
				$(this).attr("src",$(this).attr("src").replace(".gif","_on.gif"));
				},function(){
				$(this).attr("src",$(this).attr("src").replace("_on.gif",".gif"));
			});
			$("#Footer div.footernavi p.switch img").toggle(function(){
				$(this).attr("src",$(this).attr("src").replace("_open_on.gif","_close.gif"));
				$(this).attr("alt",$(this).attr("alt").replace("OPEN","CLOSE"));
				$("#Slider,div#Slider-inside").show();
				$("#Slider,div#Slider-inside").css("height","auto");
				$("#Slider").slideDown("slow", function(){
					$.slider.categorysort();
					$('html,body').animate({ scrollTop: $("#Slider") .offset().top }, 400);
				});	
			},function(){
				$(this).attr("src",$(this).attr("src").replace("_close_on.gif","_open.gif"));
				$(this).attr("alt",$(this).attr("alt").replace("CLOSE","OPEN"));
				$("#Slider div#Slider-inside").animate({height: 0 }, 400 ,function(){
					$("#Slider div#Slider-inside").hide();
					$("div#Slider").animate({height: 0 }, 200 ,function(){
						$("div#Slider").hide();
					});
				});
			});
	    },		
		/* RSS取得・表示(RSSが同じドメインに設置されている場合） */
		getFeed : function(root,options) {
			var c = $.extend({
				feed_url    : root,
				append_target : '#Slider div#Slider-inside',
				output_num : 16,
				callback : function(){ 
					//$('#Slider div#Slider-inside').liScroll();
				}
			}, options);
			var imagepass = root.replace('xml/information.xml','');
			var imagepass = root.replace('xml/system/info_reader.php','');
			var html = '';
			$.ajax({
	            url: c.feed_url,
	            //非同期通信
	            async: true,
	            //通信結果をキャッシュ
	            cache: false,
	            dataType: "xml",
	            success: function(xml){
	                $(xml).find('item').each(function(i){
	                    if (i == c.output_num) {
	                        return false;
	                    }
	                    var category = $(this).find('category').text();
						categoryclass = category;
						switch(category){
							case "blog":
							category = '<img src="'+imagepass+'images/common/slider_ico_blog.gif" width="25" height="25" alt="" />';
							break;
							case "link":
							category = '<img src="'+imagepass+'images/common/slider_ico_link.gif" width="25" height="25" alt="" />';
							break;
							case "news":
							category = '<img src="'+imagepass+'images/common/slider_ico_news.gif" width="25" height="25" alt="" />';
							break;
							case "twitter":
							category = '<img src="'+imagepass+'images/common/slider_ico_twitter.gif" width="25" height="25" alt="" />';
							break;
						}
	                    category = '<p class="icon">' + category + '</p>';
	                    var date = '<p class="date">'+$(this).find('date').text()+'</p>';
						var image = $(this).find('image').text();
						if(image){
							image = '<p class="photo"><img src="' + image +'" alt="" /></p>';
						};
	                    var url = $(this).find('link').text();
						var target = $(this).find('link').attr("target");
	                    var textbody = '<p class="text"><a href="'+url+'" target="'+target+'"'+' class="location">'+$(this).find('body').text()+'</a></p>';					
	                    html += '<div class="newsblock ' + categoryclass + '">' + category + image + date + textbody + '<!-- .newsblock // --></div>';
	                });
					$(c.append_target).empty();
	                $(c.append_target).append(html);
					$.library.boxhover({target : '#Slider div.newsblock'});
					if(typeof c.callback == 'function') { c.callback(); }
	            },
	            //エラー表示
	            error: function(xml){
	                $(c.append_target).append('<p>読み込みエラーです</p>');
	            }
	        });	
		},
		//カテゴリーでソートする
		categorysort : function(options) {
			var 
				speed = 400,
				$wall = $('#Slider-inside')
			;
			
			$wall.masonry({
			  itemSelector: '.newsblock:not(.invis)',
			  animate: true,
			  animationOptions: {
				duration: speed,
				queue: false
			  }
			});
			activateCategory = 'all';
			if(!$('.category li:first img').hasClass('active')){
				$('.category li img').each(function(){
					if($(this).hasClass('active')){
						$(this).removeClass('active');
						$(this).attr('src',$(this).attr('src').replace('_on.gif','.gif'));
					};
				});
				$('.category li:first img').addClass('active');
				$('.category li:first img').attr('src',$('.category li:first img').attr('src').replace('.gif','_on.gif'));
				$wall.children('.invis')
					  .toggleClass('invis').fadeIn(speed);
				$wall.masonry();
				$('html,body').animate({ scrollTop: $("#Slider") .offset().top }, 400);
			};
			function activate(target){
				target.addClass('active');
			}
			function inactive(target){
				target.removeClass('active');
				$(target).attr('src',$(target).attr('src').replace('_on.gif','.gif'));
			}
			
			$('.category li img').click(function(){
				if(!$(this).hasClass('active')){
					inactive($('#'+activateCategory));
					activateCategory = $(this).attr('id');
					activate($('#'+activateCategory));
				
					var targetClass = '.' + activateCategory;
				
					if(targetClass=='.all') {
						// show all hidden boxes
						$wall.children('.invis')
						  .toggleClass('invis').fadeIn(speed);
					} else {  
						// hide visible boxes 
						$wall.children().not(targetClass).not('.invis')
						  .toggleClass('invis').fadeOut(speed);
						// show hidden boxes
						$wall.children(targetClass+'.invis')
						  .toggleClass('invis').fadeIn(speed);
					}
					$wall.masonry();
					$('html,body').animate({ scrollTop: $("#Slider") .offset().top }, 400);
				}
				return false;
			});
		}
	};
	$(function(){
		$.slider.switchbtn();
		//$.library.active({id:'all',type : 'img'});
	});
})(jQuery);
