/* LoginAreaInfo ver 1.0 
 * @author : bluesky
 * last update: 2009.03.11 
 * (c) 2009 ncsoft Web Development Team */
var LoginAreaInfoAction = {};
LoginAreaInfoAction.urlGameInfo = "http://aion.plaync.jp/myaion/gameinfo";
LoginAreaInfoAction.urlPostInfo = "http://aion.plaync.jp/myaion/postinfo";
LoginAreaInfoAction.urlSetting = "http://aion.plaync.jp/myaion/setting";
LoginAreaInfoAction.urlExpTransfer = "https://ncid.plaync.jp/account/join_v2/intro_transfer.aspx";
LoginAreaInfoAction.urlGameAgree = "https://ncid.plaync.jp/Account/GameAgree/GameAgreeCheckProcess.aspx?serviceCode=27";
LoginAreaInfoAction.urlLoginPersonalGameInfo = "/personal/gameinfo/myaion/info/loginPersonalGameInfo";
LoginAreaInfoAction.urlBuddyList = "/personal/gameinfo/myaion/info/loginBuddyList";
LoginAreaInfoAction.urlLegionMemberList = "/personal/gameinfo/myaion/info/loginLegionMemberList";
LoginAreaInfoAction.urlCharacterSearch = "http://aion.plaync.jp/info/search/search";
LoginAreaInfoAction.fnNotice = "noticeLink";
LoginAreaInfoAction.varPersonalInfoExpireMinute = 5;	//default 5
LoginAreaInfoAction.varAlarmInfoExpireMinute = null;
LoginAreaInfoAction.idPersonalAreaInfo = "PersonalAreaInfo";
LoginAreaInfoAction.statusLoginAreaNotAgreement = 0;
LoginAreaInfoAction.statusLoginAreaNormal = 1;
LoginAreaInfoAction.statusLoginAreaNotExistRepCharacter = 2;
LoginAreaInfoAction.statusLoginExpAccount = 3;
LoginAreaInfoAction.invalidStatusLogin = [0,2,3];

var LoginAreaInfo = {}
Object.extend(LoginAreaInfo, {
	personalInfoParameters : {}
	, alarmInfoParameters : {}
	, checkCookie : function() {
		this.personalInfoParameters.agreement = this.userParameters.loginStatus;
		this.personalInfoParameters.friendXML = LoginAreaInfoAction.urlBuddyList;
		this.personalInfoParameters.legionXML = LoginAreaInfoAction.urlLegionMemberList;
		for (var i=0; i<LoginAreaInfoAction.invalidStatusLogin.length; i++) {
			if(LoginAreaInfoAction.invalidStatusLogin[i] == this.userParameters.loginStatus) {
				this.displayPersonalInfo();
				return;
			}
		}
		!AionScriptUtil.getCookie(this.cookiePersonalInfo) ? this.getAjaxPersonalGameInfo():this.setInfoParametersByCookie();
	}
	, getAjaxPersonalGameInfo : function() {
		ajaxUtil.callAjaxReturnByMethod(LoginAreaInfoAction.urlLoginPersonalGameInfo, this.userParameters, this.setInfoParametersByAjax);
	}
	, setInfoParametersByAjax : function(response, parameters) {
		var result = response.evalJSON();
		// set personalInfo
		LoginAreaInfo.setPersonalInfoParameters(result);
		LoginAreaInfo.setCookie(LoginAreaInfo.cookiePersonalInfo, LoginAreaInfo.personalInfoParameters);
		LoginAreaInfo.displayPersonalInfo();
		//set alarmInfo
		LoginAreaInfo.setAlarmInfoParameters(result);	//do not use for cookie check vairables. but use this for alarm to new item selled
		LoginAreaInfo.displayAlarmInfo();
	}
	, setInfoParametersByCookie : function() {
		// set personalInfo
		var parameters = AionScriptUtil.getCookie(this.cookiePersonalInfo).toQueryParams();
		this.setPersonalInfoParameters(parameters);
		this.setAlarmInfoParameters(parameters);
		this.displayPersonalInfo();
		this.displayAlarmInfo();
	}
	, setPersonalInfoParameters : function(resultObject) {
		if (resultObject.serverID != "") this.personalInfoParameters.serverID = resultObject.serverID;
		if (resultObject.charID != "") this.personalInfoParameters.charID = resultObject.charID;
		if (resultObject.notice != "") this.personalInfoParameters.notice = resultObject.notice;
		if (resultObject.noticeUrl != "") this.personalInfoParameters.noticeUrl = resultObject.noticeUrl;
		if (typeof resultObject.countMail != "undefined") this.personalInfoParameters.countMail = resultObject.countMail;
		if (typeof resultObject.countVendorLog != "undefined") this.personalInfoParameters.countVendorLog = resultObject.countVendorLog;
		if (typeof resultObject.countVendorItem != "undefined") this.personalInfoParameters.countVendorItem = resultObject.countVendorItem;
		if (typeof resultObject.countVisit != "undefined") this.personalInfoParameters.countVisit = resultObject.countVisit;
		if (typeof resultObject.countGuestbook != "undefined") this.personalInfoParameters.countGuestbook = resultObject.countGuestbook;
		if (typeof resultObject.alarmMail != "undefined") this.personalInfoParameters.alarmMail = resultObject.alarmMail;
		if (typeof resultObject.alarmVendorLog != "undefined") this.personalInfoParameters.alarmVendorLog = resultObject.alarmVendorLog;
		if (typeof resultObject.alarmVendorItem != "undefined") this.personalInfoParameters.alarmVendorItem = resultObject.alarmVendorItem;		
	}
	, setAlarmInfoParameters : function(resultObject) {
		if (typeof resultObject.alarmVendorLog != "undefined") this.alarmInfoParameters.alarmVendorLog = resultObject.alarmVendorLog;	
	}
	, setCookie : function(cookieObject, valueParameters) {
		cookieObject.value = Object.toQueryString(valueParameters);
		AionScriptUtil.setCookie(cookieObject);
	}
	, displayPersonalInfo : function() {
		var flashPersonalInfoParameter = {
			agreement : this.personalInfoParameters.agreement
			, friendXML : this.personalInfoParameters.friendXML
			, legionXML : this.personalInfoParameters.legionXML
			, info_txt1 : this.personalInfoParameters.notice
			, info_txt2 : null	//character birthday but not use
			, info_txt3 : null	//event history but not use
			, info_fn1 : LoginAreaInfoAction.fnNotice
			, info_fn2 : null
			, info_fn3 : null		
			, sale_complete : this.personalInfoParameters.countVendorLog
			, sale_progress : this.personalInfoParameters.countVendorItem
			, post_num : this.personalInfoParameters.countMail
			, visit : this.personalInfoParameters.countVisit
			, guestbook : this.personalInfoParameters.countGuestbook
		};
		this.flashMovie(LoginAreaInfoAction.idPersonalAreaInfo).setInfo(flashPersonalInfoParameter);
	}
	, displayAlarmInfo : function() {
		//set alarmInfo - do not use alarm checker
		if (typeof this.personalInfoParameters.alarmVendorLog == "string") {
			var cookieAlarmInfo = AionScriptUtil.getCookie(this.cookieAlarmInfo);
			if (!cookieAlarmInfo || cookieAlarmInfo.toQueryParams().alarmVendorLog != this.personalInfoParameters.alarmVendorLog) {
			var flashAlarmInfoParameter = {
					cont_txt : this.personalInfoParameters.alarmVendorLog
					, cont_num : this.personalInfoParameters.countVendorLog - 1
				};
				this.flashMovie(LoginAreaInfoAction.idPersonalAreaInfo).setAlrimi(flashAlarmInfoParameter);
			}
		}

	}
	, flashMovie : function(movieName) {
		if (navigator.appName.indexOf("Microsoft") != -1) return window[movieName];
		else return document[movieName];
	}
});

function saleLink() {location.href = LoginAreaInfoAction.urlPostInfo;}
function postLink() {location.href = LoginAreaInfoAction.urlPostInfo;}
function visitLink() {location.href = LoginAreaInfoAction.urlCharacterSearch + "?charID=" + LoginAreaInfo.personalInfoParameters.charID + "&serverID=" + LoginAreaInfo.personalInfoParameters.serverID;}
function guestbookLink() {location.href = LoginAreaInfoAction.urlCharacterSearch + "?charID=" + LoginAreaInfo.personalInfoParameters.charID + "&serverID=" + LoginAreaInfo.personalInfoParameters.serverID;}
function agreeLink() {location.href = LoginAreaInfoAction.urlGameAgree;}
function characterLink() {location.href = LoginAreaInfoAction.urlSetting;}
function expLink() {location.href = LoginAreaInfoAction.urlExpTransfer;}
function checkToday() {LoginAreaInfo.setCookie(LoginAreaInfo.cookieAlarmInfo, LoginAreaInfo.alarmInfoParameters);}
function noticeLink() {
	if (typeof LoginAreaInfo.personalInfoParameters.noticeUrl != "undefined") location.href = LoginAreaInfo.personalInfoParameters.noticeUrl;
}
function friendLink(serverID, charID) {location.href = LoginAreaInfoAction.urlCharacterSearch + "?charID=" + charID + "&serverID=" + serverID;}
function legionLink(serverID, charID) {location.href = LoginAreaInfoAction.urlCharacterSearch + "?charID=" + charID + "&serverID=" + serverID;}
function friendMore() {location.href = LoginAreaInfoAction.urlGameInfo;}