/* 
|	gamepassmember.js
|
|	function oGPInfo() reads data from the gamepass member info 
|	form and determines membership status
|
|	function DisplayStatus() creates a gamepass member
|	info object and displays the member's status
|
*/


//constructor function for gamepass member info object
function oGPInfo(memInfoFormId)  {
	var arrDate;
	this.MemActive=false;
	this.MemStopped=false;
	this.MemCookieExpired=false;
	this.MemStatus='';
	this.bExpired=false;

	//get a reference to the gamepass member info form
	var frmMemInfo = document.forms[memInfoFormId]

	//get member info from form
	if(frmMemInfo.Active){
		if (frmMemInfo.Active.value.toUpperCase() == 'ACTIVE') {
			this.MemActive = true;
		} 
		else if (frmMemInfo.Active.value.toUpperCase() == 'STOPREQ') {
			this.MemActive = true;
			this.MemStopped = true;
		}
		else
		{
			this.MemActive = false;
		}
	}

	//drop ebi cookie to indicate that the user
	//is an active GamePass member

	if(this.MemActive) setCookie("games.gamePassActive","1","30");

	if(frmMemInfo.FN)
	{
		this.FN = frmMemInfo.FN.value;
	}
	
	if(frmMemInfo.Cred){
		this.Cred = frmMemInfo.Cred.value;
		if(this.Cred == 'None') this.Cred = 0;
	}

	if(frmMemInfo.ExpDate && frmMemInfo.Next_avail)  {
		//if exp=next_avail, set exp to 30 days, and next_avail to 31 days
		if (frmMemInfo.ExpDate.value == frmMemInfo.Next_avail.value)
		{
			arrDate = frmMemInfo.ExpDate.value.split('-');
			var dExp = new Date(arrDate[2], arrDate[0]-1, arrDate[1]);
			dExp.setTime(dExp.getTime() + (30*24*60*60*1000));

			arrDate = frmMemInfo.Next_avail.value.split('-');
			var dAvail = new Date(arrDate[2], arrDate[0]-1, arrDate[1]);
			dAvail.setTime(dAvail.getTime() + (31*24*60*60*1000));
			} else {

			arrDate = frmMemInfo.ExpDate.value.split('-');
			var dExp = new Date(arrDate[2], arrDate[0]-1, arrDate[1]);
			
			arrDate = frmMemInfo.Next_avail.value.split('-');
			var dAvail = new Date(arrDate[2], arrDate[0]-1, arrDate[1]);
		}
	}

	if(frmMemInfo.ExpDate){
		if( !isNaN( dExp.getDate() ) ) {
			var month = getMonthStr(dExp.getMonth());
			sExp = month + ' ' + dExp.getDate() + ',  ' + dExp.getFullYear();
			this.ExpDate = sExp;
		} else {
			this.ExpDate = '';
		}
	}

	if(frmMemInfo.Next_avail){
		if(!isNaN(dAvail.getDate())) {
			var month = getMonthStr(dAvail.getMonth());
			sAvail = month + ' ' + dAvail.getDate() + ', ' + dAvail.getFullYear();
			this.Next_avail = sAvail;
			//are we past the credit expire date?
			var dNow = new Date();
			var secNow = dNow.getTime();
			var secExp = dAvail.getTime();
			secNow>secExp?this.bExpired=true:this.bExpired=false
		} else {
			this.Next_avail = '';
		}
	}

	//determine display status
	if(this.MemActive) this.MemStatus='Active';
	if(this.MemActive && (this.Cred == 1 || this.Cred == 2 || this.Cred == 3) )  this.DispStatus = 'ACTCRED';
	if(this.MemActive && this.Cred == 0) this.DispStatus = 'ACTNOCRED';
	if(this.MemActive && this.MemStopped)  this.DispStatus = 'ACTSTOPPED';
	if(!this.MemActive) this.DispStatus = 'NOCOOKIE';
}

function DisplayStatus(infoEl,arrHide) {

	//create member info object
	var oMem = new oGPInfo(infoEl);

	if (oMem.DispStatus == "NOCOOKIE" && arrHide != null)
	{
		for(var i=0; i<arrHide.length; i++)
			document.getElementById(arrHide[i]).style.display="none";
	}

	document.getElementById('welcome').innerHTML = 'Welcome, ' + oMem.FN;

	//write status info to screen
	switch (oMem.DispStatus) {

		case 'ACTCRED': 
				document.getElementById('mem_stat').innerHTML = 'GamePass Membership: <span class="minibodybld">' + oMem.MemStatus + '</span>';
				if(!oMem.bExpired) {
				document.getElementById('cred_avail').innerHTML = 'Game Credit Available: <span class="minibodybld">' + oMem.Cred + '</span>';
				document.getElementById('cred_exp').innerHTML = 'Credit Expires: <span class="minibodybld">' + oMem.ExpDate + '</span>';
				} else {
				document.getElementById('cred_avail').innerHTML = '<span style="vertical-align : middle">New Credit Available</span>';
				document.getElementById('cred_exp').innerHTML = '<a href="javascript:void signin()" class=tinybody>Sign In</a> for GamePass Credit Status';
				}
				break;
		case 'ACTNOCRED':  
				document.getElementById('mem_stat').innerHTML = 'GamePass Membership: <span class="minibodybld">' + oMem.MemStatus + '</span>';
				if(!oMem.bExpired) {
				document.getElementById('cred_avail').innerHTML = 'Credits Available: <span class="minibodybld">' + oMem.Cred + '</span>';
				document.getElementById('cred_exp').innerHTML = 'Next Credit Available: <span class="minibodybld">' + oMem.Next_avail; + '</span>'
				} else {
				document.getElementById('cred_avail').innerHTML = '<span style="vertical-align : middle">New Credit Available</span>';
				document.getElementById('cred_exp').innerHTML = '<a href="javascript:void signin()" class=tinybody>Sign In</a> for GamePass Credit Status';
				}
				break;
		case 'ACTSTOPPED':  
				document.getElementById('mem_stat').innerHTML = 'Your GamePass Expires: <span class="minibodybld" align=>' + oMem.ExpDate + '</span>';
				if (oMem.Cred == 1) {
				document.getElementById('cred_avail').innerHTML = 'Game Credit Available: <span class="minibodybld">' + oMem.Cred + '</span>';
				document.getElementById('cred_exp').innerHTML = 'Credit Expires: <span class="minibodybld">' + oMem.ExpDate + '</span>';
				} else {
				document.getElementById('cred_avail').innerHTML = 'Credits Available: <span class="minibodybld">0</span>';
				}
				break;
		case 'NOCOOKIE':  
				document.getElementById('welcome').innerHTML = '<span class=body1>&nbsp;Welcome to Arcade!</span>';
				document.getElementById('cred_avail').innerHTML = '<span class=minibody>Are you a GamePass Member?</span>';
				document.getElementById('cred_exp').innerHTML = '<a href="javascript:void signin()" class=tinybody>Sign In</a> to personalize your Game Guide';
				break;
	}
}

//provide sign-in functionality - this will drop an ecomm user cookie
var oWin;
var winTimer;

function monitorWin(win){
	window.onerror = function () {window.document.location.reload(true);return true;}
	if(win.closed) {
		window.document.location.reload(true);
		window.clearInterval(winTimer);
	}
}
function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}




function init() {
// display screenshots, if any
var failedLoads = 0;
for (i = 0; i < NUM_SCREEN_SHOTS; i++)
{
sImage = "ss" + i;
if(!arrImages[i].loadError)
{
document.images[sImage].src = arrImages[i].src;
}
else
{
failedLoads++;
}
}
//if no screenshots, hide the screenshots div
if(failedLoads == NUM_SCREEN_SHOTS) hideScreenshots();
}
function hideScreenshots() {
document.getElementById("screenshotsRegion").style.visibility = "hidden";
document.getElementById("gameVisualRegion").style.backgroundImage = "";
document.getElementById("gameVerbalRegion").style.width = (580 - 30) + "px";
document.getElementById("gameVerbalRegion").style.marginLeft = "15px";
}
function hideSkyAd() {
document.getElementById("gamePageSkyAd").style.display = "none";
}

//-->

// dev and test hosts
// http://edgedev02.consys.prognet.com:235/cts/html/pt/
// https://order-test.real.com/pt/


var strSignInURL = "";

function signin(){
	oWin = window.open( strSignInURL,"_blank","width=400,height=400,resizable=yes,scrollbars=no" );
	winTimer = window.setInterval('monitorWin(oWin)',250)
}

/* strings (str1 - str6) are passed in from gamePassSignIn.jsp.  In the .jsp, the strings are pulled from the localized xml file */
function setStatusCookie(formId, arrGPText, strSrc, str7, str8, offer, term ){
	oMemStat = new oGPInfo(formId);
    var strExtra = "";

	if( offer == ( "true" ) )
	{

	    strExtra = ("&gptype=trial&init_term=" + term );
	}

	if(oMemStat.DispStatus == 'NOCOOKIE')
	{
	        if( arrGPText[ 10 ] == null || arrGPText[ 10 ] == undefined || arrGPText[ 10 ] == "" ){ arrGPText[ 10 ] = ""; }
	        strSignInURL = str8;
	        //var test = '<span class=minibody>' + arrGPText[0] + '</span><br>' + arrGPText[1] + " " + '<a href="javascript:void signin()" class=tinybody>' + arrGPText[2] + '</a>' + arrGPText[3] + '<br /><br /><span class=minibody>' + arrGPText[4] + '</span> <a href="http://www.jp.realarcade.com/gamepass.html?src=' + strSrc + '' + str7 + '" class=tinybody>' + arrGPText[5] + '</a>' + arrGPText[3]);
			document.write( '<span class=minibody>' + arrGPText[0] + '</span><br>' + arrGPText[1] + " " + '<a href="javascript:void signin()" class=tinybody>' + arrGPText[2] + '</a>' + arrGPText[3] + '<br /><br /><span class=minibody>' + arrGPText[4]  + ' ' + arrGPText[ 10 ] + '</span> <a href="http://www.jp.realarcade.com/gamepass.html?src=' + strSrc + str7 + strExtra + '" class=tinybody>' + arrGPText[5] + '</a>' + arrGPText[3]);
	}
	else
	{
		if(oMemStat.FN) document.write(arrGPText[6] + ' ' + oMemStat.FN + ' ' + arrGPText[14]);;
		if(oMemStat.DispStatus == 'ACTCRED' || oMemStat.DispStatus == 'ACTSTOPPED')
		{
			if(oMemStat.Cred) document.write('<br>' + arrGPText[7] + ' ' + oMemStat.Cred);
			if(oMemStat.ExpDate) document.write('<br>' + arrGPText[8] + ' ' + oMemStat.ExpDate);
		}
		else
		{
			if( oMemStat.Next_avail ) document.write('<br>' + arrGPText[9] + ' ' + oMemStat.Next_avail);
		}
		if(arrGPText[13])
		{
		document.write('<br><br>' + arrGPText[11] + '<br><br><center><a href="' + arrGPText[13] + '">' + arrGPText[12] + '</a><center>');
		}
	}
}
<!--

// 現在のスクロール量を取得（汎用）
function getScroll(){
var x, y;
if(document.all !== void 0){ // IE4, IE5, IE6
x = document.body.scrollLeft;
y = document.body.scrollTop;
}else if(document.layers !== void 0 || (navigator.userAgent.indexOf("Opera") != -1 || window.opera !== void 0)){ // NN4, Opera6
x = window.pageXOffset;
y = window.pageYOffset;
}else if(navigator.userAgent.indexOf("Gecko") != -1){ // NS6, Mozilla
x = window.scrollX;
y = window.scrollY;
}else{
x = y = 0;
}
return {x: x, y: y};
}

// スクロール始めのスクロール量
var SCROLL;

var divCountScroller = 30; // 分割数（何段階でスクロールするか）

// 現在のスクロール位置から、指定座標までスクロールします
// 使用方法は BODY部ソースを参考
function scroller(x, y, count){
if(count === void 0){
count = 0;
SCROLL = getScroll();
}

if(count++ < divCountScroller){
var c = count/divCountScroller;

var nx = SCROLL.x+(x-SCROLL.x)*c;
var ny = SCROLL.y+(y-SCROLL.y)*c;

window.scrollTo(nx, ny);

setTimeout("scroller("+x+","+y+","+count+");", 15); // 再描画時間 10[msec] 小さい程早い
}
}

//-->


