$(document).ready(function(){
	$("img[src$=png]").pngfix();
	rainbow.init();
	navi.init();
	scroller.init();
	result.init();

	var imageLinkLocation = new Array();
	var chasheImage = new Array();
	for(i = 0; i < $('input.linkImage, .linkImage a > img, a.linkImage > img').length; i++) {
		imageLinkLocation[i] = $('input.linkImage, .linkImage a > img, a.linkImage > img').eq(i).attr('src');
		chasheImage[i] = new Image();
		chasheImage[i].src = imageLinkLocation[i].replace(new RegExp('(_on)?(\.gif|\.jpg|\.png)$'), "_on$2");
	}
	$('input.linkImage, .linkImage a > img, a.linkImage > img').each(function(imageIndex){
		$(this).hover(function(){
			$(this).attr('src',chasheImage[imageIndex].src);
		}, function(){
			$(this).attr('src',imageLinkLocation[imageIndex]);
		});
	});

	// 地図
	if (GBrowserIsCompatible()) {
		var map = new GMap2(document.getElementById("map"));
		var point = new GLatLng(35.673956,139.706303);
		map.setCenter(point, 16);
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		var marker = new GMarker(point);
		map.addOverlay(marker);
		var html="<h3>株式会社PIVOT</h3><address>〒150-0001<br />東京都渋谷区神宮前１－２－２<br />大島ビル1階<br />Tel:03-5413-3711<br />FAX:03-5413-3727</address>";
		marker.openInfoWindowHtml(html);
		GEvent.addListener(marker, "click", function() {
			marker.openInfoWindowHtml(html);
		});
	}
});

// 虹色背景
var rainbow = {
	scrollTimer : false,
	init : function() {
		var positionTop = 0;
		var maxPosition;
		var targetPosition;
//		if (navigator.userAgent.indexOf('iPad') != -1 || navigator.userAgent.indexOf('iPhone') != -1) {return false;}
		$('.rainbowBg').show();
		maxPosition = ($('.rainbowBg').height() > $('.wrapper').height()) ? 0 : $('.wrapper').height() - $('.rainbowBg').height();
		$(window).scroll(function(){
			clearTimeout(rainbow.scrollTimer);
			targetPosition =  $(document).scrollTop() - positionTop;
			if ( targetPosition > maxPosition ) targetPosition = maxPosition;
			if ( targetPosition < 0 ) targetPosition = 0;
			rainbow.scrollTimer = setTimeout(function(){$('.rainbowBg').animate({top:targetPosition+'px'}, 'slow', 'swing');}, 100);
		});
	}
};

// ナビゲーション
var navi = {
	positionTop : false,
	naviTimer : false,
	init : function() {
		$('#contentsContainer .navi').css('position', 'relative');
		if(!navi.positionTop){
			navi.positionTop = $('#contentsContainer .navi').position().top;
		}
		var maxPosition;
		var targetPosition;
		maxPosition = ($('#contentsContainer .navi').height() > $('.wrapper').height()) ? 0 : $('.wrapper').height() - $('#contentsContainer .navi').height();
		$(window).scroll(function(){
			clearTimeout(navi.naviTimer);
			targetPosition =  $(document).scrollTop() - navi.positionTop + 20;
			if ( targetPosition > maxPosition ) targetPosition = maxPosition;
			if ( targetPosition < 20 ) targetPosition = 0;
			navi.naviTimer = setTimeout(function(){$('#contentsContainer .navi').animate({top:targetPosition+'px'}, 'fast', 'swing');}, 100);
		});
	}
};

// スクローラー
var scroller = {
	targetPosition : 0,
	currentPosition : 0,
	targetId : "",
	scrollSpeed : 20,
	init : function() {
		$('a[href*=#]').click(function(){
			$(this).attr('href').match(/#/g);
			scroller.targetId = RegExp.rightContext;
			scroller.targetPosition = Math.round($('#'+scroller.targetId).offset().top) - 50;
			if (navigator.userAgent.indexOf('iPad') != -1) {
				// iPadでoffset().topの値がスクロール分加わっているバグ対処。
				scroller.targetPosition -= window.scrollY;
			}
			if($(document).height() - $(window).height() < scroller.targetPosition){
				scroller.targetPosition = $(document).height() - $(window).height();
			}
			if (scroller.targetPosition < 0) {scroller.targetPosition = 0;}
			scroller.currentPosition = $(document).scrollTop();
			
//			alert($('body #'+scroller.targetId).offset().top);
			scroller.scroll();
			return false;
		});
	},
	scroll : function() {
		var moveToPosition;
		if(Math.abs(scroller.currentPosition-scroller.targetPosition) <= 1){
			window.scrollTo(0,scroller.targetPosition);
			scroller.currentPosition = 0;
		} else {
			moveToPosition = Math.round(scroller.currentPosition+((scroller.targetPosition-scroller.currentPosition)/3));
			window.scrollTo(0, moveToPosition);
			scroller.currentPosition = moveToPosition;
			setTimeout(scroller.scroll,scroller.scrollSpeed);
		}
	}
}

// 制作実績
var result = {
	init : function() {
		$('#result').css('min-height',$('#result').height()+'px');
		$('#result a.viewAll').click(function(){
			result.open();
		});
		$('#result a.listClose').click(result.close);
		$('#result .close a').click(result.close);
	},
	open : function() {
		$('#result .defaultView').hide();
		$('#result .allView').slideDown('normal',function(){
			$('#result a.viewAll').hide();
			$('#result a.listClose').show();
			rainbow.init();
			navi.init();
		});
	},
	close : function() {
		$('#result .allView').slideUp('normal',function(){
			$('#result .defaultView').show();
			$('#result a.viewAll').show();
			$('#result a.listClose').hide();
			rainbow.init();
			navi.init();
		});
	}
};


// ウィンドウオープン flashから呼ぶ
var openInfoWindow = function(){
	window.open("popup/index.html", "", "width=630,height=470");
}
