// initialize
var aSelectedType = new Array();
var sSelectedOrder;
var bCheckSorted = false;

var currentFileName = location.pathname.substr(1,location.pathname.length-1);

var cookieFormat = new Array();
cookieFormat = ["itemListFilterVisible","itemListFilter","sSelectedOrder","sListViewType"];

for (i=0;i<cookieFormat.length;i++) {
	eval("var " + cookieFormat[i] + ";");
}

getCookie();










// event load
window.onload = function () {
	
	// create io interface
	//document.body.innerHTML = document.body.innerHTML + '<iframe src="/dummy.html" id="io"></iframe>';
	//$('io').style.display="none";
	
	// refresh filter buttons
	/*
	var checkvisible = false;
	for (var n in aSelectedType) {
		if ($("control-filter-item-" + aSelectedType[n]).style.display != "none") {
			checkvisible = true;
		}
	}
	if (!checkvisible) {
		aSelectedType = [];
		refreshItemList();
	}
	*/
	
	// refresh global-nav
	var obj = document.getElementsByTagName("a");
	var s;
	var baseurl = location.protocol+"//"+location.hostname;
	for (n=0;n<obj.length;n++) {
		if (obj[n].parentNode.parentNode.parentNode.id == "global-nav") {
			if (obj[n].href.replace(baseurl+"/","") == currentFileName) {
				obj[n].style.backgroundColor = "#ddd";
				obj[n].href = "#";
			}
		}
	}
	
	// anchor link
	var linkObj = document.getElementsByTagName('a');
	for (i=0; i<linkObj.length; i++) {
		var aHref = linkObj[i].href.split("#");
		if (aHref[1]) {
			linkObj[i].href="javascript:anchorlink('"+aHref[1]+"');";
		}
	}
	var linkObj = document.getElementsByTagName('area');
	for (i=0; i<linkObj.length; i++) {
		var aHref = linkObj[i].href.split("#");
		if (aHref[1]) {
			linkObj[i].href="javascript:anchorlink('"+aHref[1]+"');";
		}
	}
	
}



// get element shortcut
function $(id){
	if(typeof(id) == 'string') return document.getElementById(id);
	return id;
}




// link out
function linkout(s) {
	window.open('/out?id='+s);
}

// access ranking info
function accessRankingInfo(s) {
	var mes = "このタグを自分のサイトやブログに貼り付けよう！→→→　";
	mes += '<a href="http://www.game-frontier.com/in?id='+s+'"><img src="http://www.game-frontier.com/images/banner.gif" alt="無料で遊べる個人ゲーム情報サイト【ゲーフロ】GAME FRONTIER"></a>';
	alert(mes);
}












//get cookie
function getCookie() {
    var tmp = document.cookie;
	// initialize
	if (!tmp) {
		itemListFilter = '';
		sSelectedOrder = '+itemInsert';
		itemListFilterVisible = 'none';
		sListViewType = 'view-default';
		setCookie();
		return;
	}
	// data load
	var value;
	var buffer = tmp.split("; ");
	for (i=0;i<buffer.length;i++) {
		value = buffer[i].split("=");
		if ( value[1] == "NULL" ) { value[1] = ""; }
		eval(value[0] + " = '" + value[1] + "';");
	}
	if ( itemListFilter ) {
		aSelectedType = itemListFilter.split(",");
	}
	// initialize
	if ( !sListViewType ) {
		sListViewType = 'view-default';
	}
}

//set cookie
function setCookie() {
	itemListFilter = aSelectedType.join(",");
	var tmp;
	var i;
	for (i=0;i<cookieFormat.length;i++) {
			if (!eval(cookieFormat[i])) { eval(cookieFormat[i] + " = 'NULL';"); }
			tmp = cookieFormat[i] + "=" + eval(cookieFormat[i]) + "; ";
		    tmp += "path=/; expires=Tue, 31-Dec-2030 23:59:59; ";
		    document.cookie = tmp;
	}
}

















function createHttpRequest(){
	if (window.ActiveXObject){
		try {
			return new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				return new ActiveXObject("Microsoft.XMLHTTP")
			} catch (e2) {
				return null;
	        }
	     }
	} else if ( window.XMLHttpRequest ) {
	    return new XMLHttpRequest();
	} else {
	    return null;
	}
}

function requestFile( data , method , fileName , async ,func ) {
	var httpoj = createHttpRequest();
	httpoj.open( method , fileName , async );
	httpoj.onreadystatechange = function() {
		if ( httpoj.readyState == 4 ) { 
			on_loaded(httpoj,func);
		}
	}
	httpoj.send( data );
	if (!async) {
		re  = httpoj.responseText;
		eval (func+"(re);");
	}
}

function on_loaded(oj,func) {
	re  = oj.responseText;
	eval (func+"(re);");
}







// anchor link

function anchorlink(s) {
	currentY = getWinYOffset();
	if(s == 'top') {
		targetY = 0;
	} else {
		targetY = getElementPosition(s)['top'];
	}
	pastY = currentY;
	intervalScroll = setInterval( "motionScroll()", 20 );
}
function motionScroll() {
	if (getWinYOffset() != pastY) {
		if (intervalScroll) clearTimeout(intervalScroll);
		return;
	}
	currentY = currentY + ( (targetY - currentY) / 5 );
	window.scrollTo(0,currentY);
	if (currentY - 1 < targetY && targetY < currentY + 1 ) {
		if (intervalScroll) clearTimeout(intervalScroll);
	}
	pastY = getWinYOffset();
}
function getWinYOffset() {
	if (window.scrollY) return window.scrollY;
	if (window.pageYOffset) return window.pageYOffset;
	if (document.documentElement && document.documentElement.scrollTop) {
		return document.documentElement.scrollTop;
	} else if (document.body && document.body.scrollTop) {
		return document.body.scrollTop;
	}
	return 0;
}
function getElementPosition(element) {
	var offsetTrail = (typeof element == 'string') ? document.getElementById(element) : element;
	var offsetLeft = 0;
	var offsetTop = 0;
	while (offsetTrail) {
		offsetLeft += offsetTrail.offsetLeft; offsetTop += offsetTrail.offsetTop;
		offsetTrail = offsetTrail.offsetParent;
	}
	if (navigator.userAgent.indexOf('Mac') != -1 && typeof document.body.leftMargin != "undefined") {
		offsetLeft += document.body.leftMargin; offsetTop += document.body.topMargin;
	}
	return ({left: offsetLeft, top: offsetTop});
}




