
//名前空間用のオブジェクトを用意する
var CHECKVIEW = {};

CHECKVIEW.ready = function(){
	
	// セッションストレージクリア
	SessionStorageUtils.clear();
	AVWEB.avwUserSessionObj = null;
	// create new session
	AVWEB.avwCreateUserSession();
	I18N.initi18n();

	var sysSettings = AVWEB.avwSysSetting(); // get info in conf.json

	// モード初期化
	ClientData.isGetitsMode(false);
	ClientData.isStreamingMode(false);
	ClientData.isCheckViewMode(true);
	ClientData.isCheckMode(false);
	ClientData.storeUrl("");
	
	//confのパラメータセット
	ClientData.conf_apiUrl( sysSettings.apiUrl );
	ClientData.conf_apiLoginUrl( sysSettings.apiLoginUrl );
	ClientData.conf_apiResourceDlUrl( sysSettings. apiResourceDlUrl );
	
	// Check用引数パラメータを取得
	var urlPath = COMMON.getUrlParam('urlPath', '');
	var pageNo = COMMON.getUrlParam('pageNo', '');
	var contentKey = COMMON.getUrlParam('key', '');
	
	//念のため前回までの閲覧ログは削除
	ClientData.ContentLogData([]);

	//ページ番号指定有り
	if( pageNo == "" || pageNo == "0" || pageNo == "1"){
		ClientData.common_prePageNo(null)
	} else {
		ClientData.common_prePageNo(pageNo);
	}
	
	setTimeout(function (){
		CHECKVIEW.processLogin(urlPath, contentKey);
	}, 1000);
	
};


//Login Process
CHECKVIEW.processLogin = function(urlPath, contentKey) {

	//パスワード関連はチェック不要
	var requireChangePassword = 0;
	var skipPwdDate;
	
	var params = {
		urlPath: urlPath,
	};
	
	// Get url to login
	var apiLoginUrl = ClientData.conf_apiLoginUrl();
	
	$('#main-error-message').html("loading...");
	$('#main-error-message').show();
	
	AVWEB.avwCmsApiWithUrl(apiLoginUrl, null, 'webCreateSid', 'GET', params, function (data) {
		//requirePasswordChange = data.requirePasswordChange;
		LOGIN.userinfo_sid = data.sid;
		LOGIN.userInfo_userName = data.userName;
		LOGIN.optionList = data.serviceOptionList;
		
		LOGIN.getServiceOptionList();
		
		if (data.result == 'success') {
			
			// set number new push message to 0
			ClientData.pushInfo_newMsgNumber(0);
			
			// set info user login
			ClientData.userInfo_accountPath(urlPath);
			ClientData.userInfo_accountPath_session(urlPath);
			//ClientData.userInfo_loginId(loginId);
			//ClientData.userInfo_loginId_session(loginId);
			ClientData.userInfo_userName(LOGIN.userInfo_userName);
			ClientData.userInfo_sid(LOGIN.userinfo_sid);
			ClientData.userInfo_sid_local(LOGIN.userinfo_sid);

			$('#main-error-message').css('display', 'none');
			
			//contentKey復号化
			CHECKVIEW.decodeContentKey(contentKey);
			
		} else {
            LOGIN.login_errorMessage = data.errorMessage;
            $('#main-error-message').html(AVWEB.format(I18N.i18nText('msgLoginErrWrong'), data.errorMessage).toString());
            $('#main-error-message').show();
            alert("Open Error1!");
        }
        
    }, function (xhr, statusText, errorThrown) {
    	
        if (xhr.responseText && xhr.status != 0) {
            LOGIN.login_errorMessage = JSON.parse(xhr.responseText).errorMessage;
            
        	alert("Open Error21!:" + LOGIN.login_errorMessage);
            
            $('#main-error-message').html(AVWEB.format(I18N.i18nText('msgLoginErrWrong'), JSON.parse(xhr.responseText).errorMessage).toString());
        } else {
        	
        	alert("Open Error22!:E001");
        	
            $('#main-error-message').html(AVWEB.format(I18N.i18nText('msgLoginErrWrong'), 'E001'));
        }
        $('#main-error-message').show();
    });
	
};

//ワンタイムkeyパラメータからcontentIdを取得する
CHECKVIEW.decodeContentKey = function(contentKey) {

	var contentType = '';
	var result = [];
	var params = {
		sid : ClientData.userInfo_sid(),
		contentKey : contentKey
	};
	AVWEB.avwCmsApiSync(ClientData.userInfo_accountPath(), "webCheckContent", 'GET', params, function(data) {

		if (data.result == 'success') {
			// コンテンツIDセット
			ClientData.contentInfo_contentId(data.contentId);
			CHECKVIEW.showContentView(data.contentId);
		}

	}, function(xmlHttpRequest, txtStatus, errorThrown) {
		// 見つからないかエラー
		if (ClientData.isGetitsMode() == true) {
			AVWEB.avwScreenMove("abvw/" + COMMON.ScreenIds.Login);
		} else {
			// アラートメッセージ表示
			LOGIN.showAlertScreen(I18N.i18nText('msgContentNotExist'), "");
		}
	});

};

//直接コンテンツ表示
CHECKVIEW.showContentView = function(strContentId) {

	var contentType = '';
	var result = [];
	var params = {
		sid : ClientData.userInfo_sid(),
		getType : '1',
		contentId : strContentId
	};
	AVWEB.avwCmsApiSync(ClientData.userInfo_accountPath(), "webGetContent", 'GET', params, function(data) {

		// コンテンツIDセット
		ClientData.contentInfo_contentId(strContentId);
		// コンテツタイプ判定
		contentType = data.contentData.contentType;
		if (contentType == COMMON.ContentTypeKeys.Type_Others) {
			// Download content
			COMMON.downloadResourceById(strContentId);
		} else if (contentType == COMMON.ContentTypeKeys.Type_Link) {
			// link content
			COMMON.viewLinkContentById(strContentId, false);
		} else {
			// Go to Conten view page
			// アラート表示組み込めるか
			LIMIT_ACCESS_CONTENT.messageLevel[data.contentData.contentId] = {
				alertMessageLevel : data.contentData.alertMessageLevel,
				alertMessage : data.contentData.alertMessage
			};

			// check limit of content
			LIMIT_ACCESS_CONTENT.checkLimitContent(data.contentData.contentId, function() {
				CHECKVIEW.alertMessageOkFunction_callback();
			}, function() {
				CHECKVIEW.alertMessageCancelFunction_callback();
			});
		}

	}, function(xmlHttpRequest, txtStatus, errorThrown) {
		// check エラー時の表示検討
		if (ClientData.isGetitsMode() == true) {
			AVWEB.avwScreenMove("abvw/" + COMMON.ScreenIds.Login);
		} else {
			// アラートメッセージ表示
			LOGIN.showAlertScreen(I18N.i18nText('msgContentNotExist'), "");
		}
	});

};

// 警告表示時のOK処理
CHECKVIEW.alertMessageOkFunction_callback = function() {
	AVWEB.avwScreenMove("abvw/" + COMMON.ScreenIds.ContentViewCheck);
};
// 警告表示時のキャンセル処理
CHECKVIEW.alertMessageCancelFunction_callback = function() {
	//check キャンセル時の表示検討
	if (ClientData.isGetitsMode() == true) {
		AVWEB.avwScreenMove("abvw/" + COMMON.ScreenIds.Login);
	} else {
		AVWEB.avwScreenMove("abvw/" + COMMON.ScreenIds.Home);
	}
};

CHECKVIEW.debugLog = function(msg){
	//$("#debug").html(msg);
};


