(function($)
{
	$.fn.extend({
		topvisual: function(option)
		{
			var _self = $(".topimages",this);
			var _wrap = $(this);
			if(_self.length ==0) return;
			var _imgs = [];
			var _btns = [];
			var _currentNum = 0;
			var ie6 = ($.browser.msie && $.browser.version.indexOf("6") != -1);
			var btnbox = $("<div class='clearfix'></div>");
			btnbox.css("position", "absolute");
			btnbox.css("z-index", "100");
			var btnOut = "/common/js/grid/topvisual/btn.gif";
			var btnOver = "/common/js/grid/topvisual/btn_o.gif";
			
			var sId;
			
			_self.find("> *").each(function(i){
				var c = $(this);
				c.css("position", "absolute");
				if(i != 0){
					c.css("opacity",0);
					c.css("z-index",0);
				} else {
					c.css("opacity",1);
					c.css("z-index",1);
				}
				btnbox.append(createBtn(i));
				_imgs.push(c);
			});
			
			changeBtnImage(0);
			_self.append(btnbox);
			sId = setInterval(timerHandler , 6000);
			
			var btnboxX = _self.width() - _btns.length * 9 -20;
			var btnboxY = _self.height() - 20;
			btnbox.css("left",btnboxX + "px");
			btnbox.css("top",btnboxY + "px");
			
			//if(!ie6) _self.css("opacity",0).animate({opacity: 1},2000);
			
			function timerHandler(){
				_imgs[_currentNum].stop().animate({opacity: 0,"z-index":0},2000);
				_currentNum = _currentNum >= _imgs.length-1 ? 0 : _currentNum+1;
				_imgs[_currentNum].stop().animate({opacity: 1,"z-index":1},2000);
				changeBtnImage(_currentNum);
			}
			
			function createBtn(i){
				var btnhtml = "<div class='btn'><img src='"+ btnOut +"' width='9' height='9' /></div>";
				var btn = $(btnhtml);
				btn.css("width","9px");
				btn.css("height","9px");
				btn.css("margin-right","6px");
				btn.css("float","left");
				btn.data("_idx",i);
				btn.hover(
					function(){
						clearInterval(sId);
						sId = setInterval(timerHandler , 5000);
						
						_imgs[_currentNum].stop().animate({opacity: 0,"z-index":0},500);
						_currentNum = $(this).data("_idx");
						_imgs[_currentNum].stop().animate({opacity: 1,"z-index":1},500);
						changeBtnImage($(this).data("_idx"));
					}
				);
				_btns.push(btn);
				return btn;
			}
			
			function changeBtnImage(idx){
				for(i=0;i<_btns.length;i++){
					var img = $("img",_btns[i]);
					if(i == idx){
						img.attr("src",btnOver);
					} else {
						img.attr("src",btnOut);
					}
					
				}
			}
			
			_wrap.hover(
				function () {
					_wrap.css("background","#308dcd");
					//c.addClass("gridRollOver");
				},
				function () {
					_wrap.css("background","#FFFFFF");
					//c.removeClass("gridRollOver");
				}
			);
			
		}
	});
})(jQuery);


$(function(){
	
	$("#navi_home").bind("gridsort",function(){
		categorySortClear();
	})
	$("#navi_service").bind("gridsort",function(){
		categorySort("service");
	})
	$("#navi_company").bind("gridsort",function(){
		categorySort("company");
	})
	$("#navi_blog").bind("gridsort",function(){
		categorySort("blog");
	})
	
	$("#navi_home").bind("gridsortClear",function(){
		categorySortClear();
	})
	$("#navi_service").bind("gridsortClear",function(){
		categorySortClear();
	})
	$("#navi_company").bind("gridsortClear",function(){
		categorySortClear();
	})
	$("#navi_blog").bind("gridsortClear",function(){
		categorySortClear();
	})	
	
	function categorySort(category){
		if($("#grid-content div:last-child").filter(':not(:hidden)').length){
			$("#grid-content").vgsort(function(a, b){
				var a_idx = $(a).data("_vgidx");
				var b_idx = $(b).data("_vgidx");
				var a_priority = $(a).attr("class");
				var b_priority = $(b).attr("class");
				var a_priorityflg = a_priority ? a_priority.indexOf("priority") != -1 : false;
				var b_priorityflg = b_priority ? b_priority.indexOf("priority") != -1 : false;
				var a_cate = $(a).attr("class");
				var b_cate = $(b).attr("class");
				var a_cateflg = a_cate ? a_cate.indexOf(category) != -1 : false;
				var b_cateflg = b_cate ? b_cate.indexOf(category) != -1 : false;
				
				if( a_priorityflg && b_priorityflg){
					return a_idx < b_idx ? -1 : 1;
				} else if( a_priorityflg && !b_priorityflg){
					return -1;
				} else if( !a_priorityflg && b_priorityflg){
					return 1;
				} else if( a_cateflg && b_cateflg){
					return a_idx < b_idx ? -1 : 1;
				} else if(a_cateflg && !b_cateflg){
					return -1;
				} else if(!a_cateflg && b_cateflg){
					return 1;
				} else {
					return a_idx < b_idx ? -1 : 1;
				}
			}, "easeInOutExpo", 800, 20);
		}
	}
	
	function categorySortClear(){
		$("#grid-content").vgrefresh(
			function(a, b){
				var a_idx = $(a).data("_vgidx");
				var b_idx = $(b).data("_vgidx");
				return a_idx < b_idx ? -1 : 1;
			}
		);
	}
	
	//リサイズ
	function resizeHandler(){
		var stageWidth = $('html').outerWidth();
		var stageHeight = $('html').outerHeight();
		var all_content = $('#all_content');
		var left_content = $('#left_content');
		var right_content = $('#right_content');
		var header = $('#header');
		var headercontact = $('#headercontact');
		var footer = $('#footerinner');
		var pagetopwrap = $('.pagetopwrap');
		var w;
		w = stageWidth
			 - Number(all_content.css("padding-left").replace('px', '')) *1
			 - Number(all_content.css("margin-left").replace('px', '')) *1
			;
		w = w < 950 ? 950 : w;
		all_content.width(w);
		w = w - Number(left_content.width())
			  - Number(left_content.css("padding-left").replace('px', ''))
			  - Number(left_content.css("padding-right").replace('px', ''))
			  - Number(left_content.css("margin-left").replace('px', ''))
			  - Number(left_content.css("margin-right").replace('px', ''))
			  - Number(right_content.css("padding-left").replace('px', ''))
			  - Number(right_content.css("padding-right").replace('px', ''))
			  - Number(right_content.css("margin-left").replace('px', ''))
			  - Number(right_content.css("margin-right").replace('px', ''))
			  ;
		w = w < 680 ? 680 : w;
		right_content.width(w);
		var gridnum = Math.floor(w/220);
		var footheadwidth = gridnum * 220 + (gridnum-1) * 10 + left_content.width()
							+ Number(right_content.css("padding-left").replace('px', ''))
							+ Number(left_content.css("padding-left").replace('px', ''));
			
		footer.width( footheadwidth );
		header.width( footheadwidth );
		headercontact.width( footheadwidth );
		pagetopwrap.width( footheadwidth );
		//console.log(stageWidth + " -- " + all_content.width() + " -- " + left_content.width() + " -- " + right_content.width());
		
	}
	/*$(window).resize(function(e)
	{
		resizeHandler();
	});*/
	/*resizeHandler();*/
	
	var vg = $("#grid-content").vgrid({
		easeing: "easeOutQuint",
		useLoadImageEvent: false,
		useFontSizeListener: false,
		time: 500,
		delay: 10,
		fadeIn: {
			time: 500,
			delay: 50,
		},
		onStart: function(){
			
		},
		onFinish: function(){
		},
		priority:".priority",
		limitMinWidth:690,
		loading:true
	});
	
	
	$("#footernavi").hide().delay(1000).fadeIn(500);
	
	
	//トップヴィジュアルの制御
	$("#topvisual").topvisual();
});

