var scrollAtBottom = 1; // それらが下部で断ち切られるとき、商品が上るはずであるかどうか決定します。



var scrollAtBottomOffset =
        /*@cc_on
                //IE用コード
                 -112; // 項目が先端にスクロールされるなら、それが別のdiv、したがって、このオフセットであるので、タイトルは断ち切られます。

        /*/
                //IE以外用コード
				-112; // 項目が先端にスクロールされるなら、それが別のdiv、したがって、このオフセットであるので、タイトルは断ち切られます。

        /*/@*/



var expandingSpeed = 1.5;
var collapsingSpeed = 1.5;
if (expandingSpeed <= 1) {
	expandingSpeed = 2.75;
}		
if (collapsingSpeed <= 1) {
	collapsingSpeed = 1.5;
}		

var x = null; 
var y = null; // いつでも使用の後にヌルにリセットされた何かであるかもしれない変数

var currentItem = null;
var currentHeight = null;
var newHeight = null;
var arrayAnimate = new Array();
var animating = null;
var thisItem = null;

function expandCollapse(thisItem, thisItemID) {
	if (animating === null) {
		animating = 0;
		currentItem = document.getElementById(thisItem);
		if (document.all && !document.getElementById) { 
			currentItem = document.all(thisItem);
		}
		thisItem = null;
		
		if (myItems[currentItem.id] !== null) {
			if (myItems[currentItem.id] === 0) {
				myItems[currentItem.id] = 1;
				var readItem = 'read' + thisItemID
				readItem = null;
			} else {
				myItems[currentItem.id] = 0;
			}
		}
		if (currentItem.className == 'item-collapsed') {
			currentItem.style.height = '0px'; // アニメーションが0から始めるように、0pxに高さを設定してください。
			currentItem.className = 'item-expanded';
			newHeight = 'auto'; // ブラウザがscrollHeightかoffsetHeightを理解していないといけないので、autoにnewHeightを設定してください。

			if (currentItem.offsetHeight >= 1) {
				newHeight = currentItem.offsetHeight;
			} else if (!currentItem.offsetHeight && currentItem.scrollHeight >= 1) {
				newHeight = currentItem.scrollHeight;
			}
			currentHeight = 0;
		} else {
			currentHeight = 'auto'; // ブラウザがscrollHeightかoffsetHeightを理解していないといけないので、autoにcurrentHeightを設定してください。
			if (currentItem.offsetHeight >= 1) {
				currentHeight = currentItem.offsetHeight;
			} else if (!currentItem.offsetHeight && currentItem.scrollHeight >= 1) {
				currentHeight = currentItem.scrollHeight;
			}
			newHeight = 0;
		}
		// scrollHeightかoffsetHeightを入手できる場合にだけ、アレイを作ってください。
		if (newHeight === 0 && currentHeight != 'auto') { // collapsing
			y = 0;
			for (x = currentHeight / collapsingSpeed; x > 0; x = Math.floor(x / collapsingSpeed)) {
				arrayAnimate[y] = x;
				y++;
			}
			arrayAnimate[y] = 0; // ゼロを加えて、配列を完全に潰してください。
			x = null;
			y = null;
		} else if (currentHeight === 0 && newHeight != 'auto') { 
			y = 0;
			for (x = newHeight; x > 0; x = Math.floor(x / expandingSpeed)) {
				arrayAnimate[y] = x;
				y++;
			}
			arrayAnimate.reverse();
			x = null;
			y = null;
		} else {
			arrayAnimate[0] = newHeight;
		}
		currentHeight = null;
		// animate
		if (arrayAnimate.length == 1 && arrayAnimate[0] == 'auto') {
			currentItem.style.height = arrayAnimate[0];
			currentItem = null;
			newHeight = null;
			arrayAnimate = new Array();
			animating = null;
		} else {
			expandCollapseItem();
		}
	}
}

var movingItem = null;
if (scrollAtBottom == 1) {
	var viewableTop = null;
	var windowHeight = null;
	var currentItemTop = null;
	var currentItemHeight = null;
	var scrollAmount = null;
}
function expandCollapseItem() {
	currentItem.style.height = arrayAnimate[animating] + 'px';
	if (scrollAtBottom == 1 && myItems[currentItem.id] == 1) { // if item is opened // 開いているときスクロールするためのvars
		// viewableTop // これが記録する画素の量は先端からスクロールされます。 // Safari, Navigator, Firefox - window.pageYOffset // IE6+ - document.documentElement.scrollTop // IE5- - document.body.scrollTop
		if (window.pageYOffset >= 1) {
			viewableTop = window.pageYOffset;
		} else if (!window.pageYOffset && document.documentElement) {
			viewableTop = document.documentElement.scrollTop;
		} else if (!window.pageYOffset && !document.documentElement && document.body) {
			viewableTop = document.body.scrollTop;
		}
		// windowHeight // height of the window // Safari, Navigator, Firefox - window.innerHeight // IE6+ - document.documentElement.clientHeight // IE5- - document.body.clientHeight
		if (window.innerHeight >= 1) {
			windowHeight = window.innerHeight;
		} else if (!window.pageYOffset && document.documentElement) {
			windowHeight = document.documentElement.clientHeight;
		} else if (!window.pageYOffset && !document.documentElement && document.body) {
			windowHeight = document.body.clientHeight;
		}
		currentItemTop = currentItem.offsetTop; // position on page of top of current item
		currentItemHeight = arrayAnimate[animating]; // 現在の項目の高さ
		if (viewableTop === null || windowHeight === null || currentItemTop === null || currentItemHeight === null) {
			scrollAtBottom = 0;
		} else {
			if ((currentItemTop + arrayAnimate[animating]) > (viewableTop + windowHeight)) {
				scrollAmount = (currentItemHeight - arrayAnimate[animating - 1]);
				if (viewableTop > (currentItemTop - scrollAmount - scrollAtBottomOffset)) {
					scrollAmount = currentItemTop - viewableTop - scrollAtBottomOffset;
				}
				if (scrollAmount === null) {
					scrollAmount = 1;
				}
				window.scrollBy(0,scrollAmount);
			}
		}
	}
	animating++;
	if (currentItem.style.height.replace(/px$/i, '') != newHeight) {
		movingItem = setTimeout('expandCollapseItem()', 8);
	} else {
		if (arrayAnimate[arrayAnimate.length - 1] === 0) {
			currentItem.className = 'item-collapsed';
		} else {
			currentItem.style.height = 'auto'; // それらがセットするとき、divが他のdivsをケースに入れていて、それが、崩壊を広げる必要があるといけないので、autoに、セットします。

		}
		clearTimeout(movingItem);
		if (scrollAtBottom == 1 && myItems[currentItem.id] == 1) {
			viewableTop = null; // vars for scrolling at bottom
			windowHeight = null;
			currentItemTop = null;
			currentItemHeight = null;
			scrollAmount = null;
		}
		currentItem = null;
		newHeight = null;
		arrayAnimate = new Array();
		movingItem = null;
		animating = null; // turn clickables back on after animation
	}
}

var thisTitle = null;
var thisClassName = null;
var currentTitle = null;
function changeClassName(thisTitle,thisClassName) {
	currentTitle = document.getElementById(thisTitle);
	if (document.all && !document.getElementById) { 
		currentTitle = document.all(thisTitle);
	}
	currentTitle.className = thisClassName;
	thisTitle = null;
	thisClassName = null;
	currentTitle = null;
}

var rolItemNum = null;
var rollThumbNum = null;
var rollMaxImages = null;
var rollTotalImages = null;
var rollProjectLink = null;
var rollImageExt = null;
var rollServer = null;
var rollTempItem = null;
var rollCurrent = null;
var rollNext = null;
var rollPrevious = null;
var rollUrl = null;
var rollOn = 0;
function rollThumbs(rolItemNum, rollThumbNum, rollMaxImages, rollTotalImages, rollProjectLink, rollImageExt, rollServer) {
	rollTempItem = 'item' + rolItemNum + 'image' + 1;
	rollCurrent = document.getElementById(rollTempItem);
	if (document.all && !document.getElementById) { 
		rollCurrent = document.all(rollTempItem);
	}
	rollUrl = 'http://' + rollServer + '/project/' + rollProjectLink + '/images/' + rollThumbNum + '.' + rollImageExt;
	if (rollCurrent.src != rollUrl) {
		rollOn = 1;
	}

	for (n = rollMaxImages; n > 1; n--) {
		rollTempItem = 'item' + rolItemNum + 'image' + n;
		rollNext = document.getElementById(rollTempItem);
		if (document.all && !document.getElementById) { 
			rollNext = document.all(rollTempItem);
		}
		rollTempItem = 'item' + rolItemNum + 'image' + (n - 1);
		rollPrevious = document.getElementById(rollTempItem);
		if (document.all && !document.getElementById) { 
			rollPrevious = document.all(rollTempItem);
		}
		if (rollOn) {
			rollNext.src = rollPrevious.src;
		}
	}
	if (rollOn) {
		rollOn = 0;
		rollCurrent.src = rollUrl;
	}
}

var myObject = new Object();
var myMaxImgs = null;
var myThisItem = null;
var nextImg = null;
var imageTemp = null;
var myThisItemnow = null;
function rollImages(myObject, myMaxImgs, myThisItem, myThisItemnow) {
	if (myObject.numberofimages > 1) {
		for (m = myMaxImgs; m > 0; m--) {
			imageTemp = 'item' + myThisItem + 'image' + m;
			imageCurrent = document.getElementById(imageTemp);
			if (document.all && !document.getElementById) { 
				imageCurrent = document.all(imageTemp);
			}
			if (m > 1) {
				imageTempTemp = 'item' + myThisItem + 'image' + (m - 1);
				imageCurrentTemp = document.getElementById(imageTempTemp);
				if (document.all && !document.getElementById) { 
					imageCurrentTemp = document.all(imageTempTemp);
				}
				imageCurrent.src = imageCurrentTemp.src;
			} else {
				for (n = 0; n < myObject.numberofimages; n++) {
					if (imageCurrent.src == myObject.images[n]) {
						nextImg = n;
					}
				}
				nextImg++;
				if (nextImg >= myObject.numberofimages) {
					nextImg = 0;
				}
				imageCurrent.src = myObject.images[nextImg];
			}
		}
	}
}

function goToAnchor(toAnchor) {
	myTo = 'content' + toAnchor;
	myToItem = document.getElementById(myTo);
	if (document.all && !document.getElementById) { 
		myToItem = document.all(myTo);
	}
	myTo = null;
	
	document.location.href = '#project' + toAnchor;
// anchor
//	setTimeout('window.scrollBy(0,-27);', 75);
	if (myItems[myToItem.id] === 0) {
		myId = 'id' + toAnchor;
		expandCollapse('content' + toAnchor, myIds[myId]);
	}

	myToTitle = 'titlediv' + toAnchor;
	myCurrentToTitle = document.getElementById(myToTitle);
	if (document.all && !document.getElementById) { 
		myCurrentToTitle = document.all(myToTitle);
	}
	myToTitle = null;

	myCurrentToTitle.className = 'tv_div-expanded';
}

function openAllProjects(totalProjects, toAnchor) {
	for (n = 1; n <= totalProjects; n++) {
		myProject = 'content' + n;
		myCurrentItem = document.getElementById(myProject);
		if (document.all && !document.getElementById) { 
			myCurrentItem = document.all(myProject);
		}
		myProject = null;

		myCurrentItem.className = 'item-expanded';
		myCurrentItem.style.height = 'auto'; // アニメーションが0から始めるように、0pxに高さを設定してください。

		myTitle = 'titlediv' + n;
		myCurrentTitle = document.getElementById(myTitle);
		if (document.all && !document.getElementById) { 
			myCurrentTitle = document.all(myTitle);
		}
		myTitle = null;

		myCurrentTitle.className = 'tv_div-expanded';

		// set status flag for items that are declared in index.php
		myId = 'id' + n;
		myItems[myCurrentItem.id] = 1;
	}
	document.location.href = '#project' + toAnchor;
// anchor
//	setTimeout('window.scrollBy(0,-27);', 75);
}

function closeAllProjects(totalProjects, toAnchor) {
	for (n = 1; n <= totalProjects; n++) {
		myProject = 'content' + n;
		myCurrentItem = document.getElementById(myProject);
		if (document.all && !document.getElementById) { 
			myCurrentItem = document.all(myProject);
		}
		myProject = null;

		myCurrentItem.style.height = '0px'; // アニメーションが0から始めるように、0pxに高さを設定してください。
		myCurrentItem.className = 'item-collapsed';

		myTitle = 'titlediv' + n;
		myCurrentTitle = document.getElementById(myTitle);
		if (document.all && !document.getElementById) { 
			myCurrentTitle = document.all(myTitle);
		}
		myTitle = null;

		newClassName = 'tv_div';
//		if (isCookie('read' + myIds['id' + myCurrentItem.id.substring(7)])) {
		if (isCookie('read' + myIds['id' + n])) {
			newClassName = newClassName + '-read';
		}

		myCurrentTitle.className = newClassName;

		// set status flag for items that are declared in index.php
		myId = 'id' + n;
		myItems[myCurrentItem.id] = 0;

	}
	document.location.href = '#top';
}












































fd = new Object();
fd.onLoad = function(e) {
	for(var module in this) {
		if(this[module].onLoad) this[module].onLoad();
	}
}
fd.getDocumentHeight = function(){
	return (document.height) ? document.height : (document.body.offsetHeight) ? document.body.offsetHeight : 0;
}
fd.getWindowHeight = function(){
	var myHeight = 0;
	if( typeof( window.innerWidth ) == 'number' ) {
		//Non-IE
		myHeight = window.innerHeight;
	} else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
		//IE 6+ in 'standards compliant mode'
		myHeight = document.documentElement.clientHeight;
	} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
		//IE 4 compatible
		myHeight = document.body.clientHeight;
	}
	return myHeight;
}
fd.getScrollTop = function(){
	if(document.all) return (document.documentElement.scrollTop) ? document.documentElement.scrollTop : document.body.scrollTop;
	else return window.pageYOffset;
}
fd.getElementYpos = function(el){
	var y = 0;
	while(el.offsetParent){
		y += el.offsetTop
		el = el.offsetParent;
	}
	return y;
}
/*
Based on an original script by Travis Beckham (http://www.squidfingers.com)
Wrapped into an Object by yours truly
Further enhancements and bug fixs by Marco Rosella (http://www.centralscrutinizer.it)
*/
fd.pageScroller = {
	speed : 30,
	maxStep: 300,
	brakeK: 2,
	hash:null,
	currentBlock:null,
	requestedY:0,
        
	onLoad: function() {
		var lnks = document.getElementsByTagName('a');
		for(var i = 0, lnk; lnk = lnks[i]; i++) {
			if ((lnk.href && lnk.href.indexOf('#') != -1) &&  ( (lnk.pathname == location.pathname) || ('/'+lnk.pathname == location.pathname) ) && (lnk.search == location.search) && lnk.className.search('no-scroll') == -1) {
				lnk.onclick = fd.pageScroller.initScroll;
			}
		}
	},
	initScroll: function(e){
		var targ;
		if (!e) var e = window.event;
		if (e.target) targ = e.target;
		else if (e.srcElement) targ = e.srcElement;
		// Added by f.d: make sure we actually have the A node and a child tag like span or img
		while(targ.tagName.toUpperCase() != "A" && targ.parentNode) targ = targ.parentNode;
                
		fd.pageScroller.hash = targ.href.substr(targ.href.indexOf('#')+1,targ.href.length);
		fd.pageScroller.currentBlock = document.getElementById(fd.pageScroller.hash);

		if(!fd.pageScroller.currentBlock) return;
		fd.pageScroller.requestedY = fd.getElementYpos(fd.pageScroller.currentBlock) - 30;
		/*@cc_on@*/
		/*@if(@_jscript_version < 6)
			fd.pageScroller.requestedY += 30;
		/*@end@*/
		if(fd.pageScroller.requestedY < 0) fd.pageScroller.requestedY = 0;

		fd.pageScroller.scroll();
		return false;
	},
	scroll: function(){
		var top  = fd.getScrollTop();

		if(fd.pageScroller.requestedY > top) {
			var endDistance = Math.round((fd.getDocumentHeight() - (top + fd.getWindowHeight())) / fd.pageScroller.brakeK);
			endDistance = Math.min(Math.round((fd.pageScroller.requestedY-top)/ fd.pageScroller.brakeK), endDistance);
			var offset = Math.max(2, Math.min(endDistance, fd.pageScroller.maxStep));
		} else {
			var offset = - Math.min(Math.abs(Math.round((fd.pageScroller.requestedY-top)/ fd.pageScroller.brakeK)), fd.pageScroller.maxStep);
		}
		window.scrollTo(0, top + offset);
		if(Math.abs(top-fd.pageScroller.requestedY) <= 1 || fd.getScrollTop() == top) {
			window.scrollTo(0, fd.pageScroller.requestedY);
			location.hash = fd.pageScroller.hash;
			fd.pageScroller.hash = null;
		} else {
			setTimeout(fd.pageScroller.scroll,fd.pageScroller.speed);
		}
	}
}

var hoge_scripts = window.onload;
window.onload = function() {
	if(hoge_scripts != null) hoge_scripts();
	fd.onLoad();
}

