﻿try { 
	if (typeof(Prototype) == "undefined")
		alert("[ERROR] Prototype library required.");
} catch(e) {
	alert(e.description);
}


var GameLauncher = Class.create();
GameLauncher.prototype = {	
	initialize : function() {		
		this.setAgeLimit(0);				// 나이제한 없음
		this.setTesterLimit(false);			// 테스터 권한체크 없음
		this.setExpAccountLimit(false);			// 체험계정 실행체크 - 채널링은 안해도됨
		
		this.setAgeLimitMessage('');
		this.setTesterLimitMessage('VIP만 플레이 하실 수 있습니다.');
		this.setExpAccountLimitMessage('체험 계정은 본 게임을 실행하실 수 없습니다.');
	},
	loginCheck : function() {	
		window.location.href = web_login + "&return_url=" + escape( 'http://' + hostname + '/common/inc/loginCheck_daum?id=1&url='+escape(window.location) );
	},
	_beforeLaunch : function() {	
		//alert('_beforeLaunch');	
		if( this._ageLimitCheck() 	== false ) return false;		 
		if( this._testerLimitCheck() 	== false ) return false;			 	 
		if( this._expAccountLimitCheck()== false ) return false;			 			 
		
		return true;	 
	},
	_afterLaunch : function() {	
	},	
	_ageLimitCheck	: function() {
		if( this.ageLimit > 0 && this.ageLimit > _launcherParam.age ){ 
			alert(this.getAgeLimitMessage());
			return false;
		}else
			return true;
	},
	_testerLimitCheck	: function() {
		if( this.testerLimit == true && _launcherParam.tester != "true" ) {
			alert(this.getTesterLimitMessage());
			return false;
		}else
			return true;
	},	
	_expAccountLimitCheck	: function() {
		if( this.expAccountLimit == true && _launcherParam.expAccount == "true" ) {
			alert(this.getExpAccountLimitMessage());
			return false;
		}else
			return true;
	},
	
	_goLauncher : function() {
		//alert('_goLauncher');
		try{		
			var url = "/common/inc/launcher/getGameLauncherStatus";
		    var serviceID = _launcherParam.gameCode;        
		    new Ajax.Request(url, {	asynchronous:false,
						            method: 'post',
						            encoding: 'UTF-8',
						            parameters: "serviceID=" + serviceID  ,
						            onSuccess: checkLauncherStatus,
						            onFailure: function() {	alert("잠시 후에 다시 이용해 주십시요.");	}        
	        						} 
		        				);	// end of Ajax.Request()
	  	} catch(e) { alert(e.description);	}
	},	 

	setAgeLimit 		: function(nAge) { this.ageLimit = nAge; },
	setTesterLimit 		: function(bTrue) { this.testerLimit = bTrue; },
	setExpAccountLimit 	: function(bTrue) { this.expAccountLimit = bTrue; },
	
	setAgeLimitMessage 			: function(message) { this.ageLimitMessage = message; },
	setTesterLimitMessage 		: function(message) { this.testerLimitMessage = message; },
	setExpAccountLimitMessage 	: function(message) { this.expAccountLimitMessage = message; },
	getAgeLimitMessage 			: function() { return this.ageLimitMessage; },
	getTesterLimitMessage 		: function() { return this.testerLimitMessage; },
	getExpAccountLimitMessage 	: function() { return this.expAccountLimitMessage; },
	
	
	launch : function() {
		try{				
			if( this._beforeLaunch() == true ) {
				this._goLauncher();
				this._afterLaunch();
			} else {
				window.location.href = "/";
			}
		} catch(e) { alert(e.description);	}
	}	
}


function FlashStartButton() {
	try{
		var launcher = new GameLauncher();
		launcher.loginCheck();
		//launcher.launch();				
  	} catch(e) { alert(e.description);	}
} 
/* loginCheck_daum으로 이동
function checkLauncherStatus(transport) {
	try{		 
	    var result = transport.responseXML;
	    var launcherStatus = "-1";
	    var alertMessage = "";	    
	    if (result.getElementsByTagName("launcherStatus")[0].childNodes.length > 0) {
	        launcherStatus = result.getElementsByTagName("launcherStatus")[0].firstChild.nodeValue;	        
	        if (result.getElementsByTagName("alertMessage")[0].childNodes.length > 0) {
	            alertMessage = result.getElementsByTagName("alertMessage")[0].firstChild.nodeValue;
	        }	
	        if (launcherStatus == "0") { 
		        new Ajax.Request(	"/common/inc/loginCheck", {	asynchronous:false,
		        												method:'post',
																encoding: 'UTF-8',
																onComplete: execLauncher,
																onFailure: function() {	alert("런처 실행에 실패했습니다. ");	}
															}
							);	// end of Ajax.Request()	  
	        }
	        else { alert(alertMessage); }                        
	    }          
	    else {  alert("잠시 후에 다시 이용해 주십시요.");    }
    } catch(e) { alert(e.description);	}
}

function execLauncher(result) {	
	if( result.responseText == 'true' ) {
		var launcher =  StartLauncher();
		
		if( launcher == SUCCESS_RUN ) {
			//window.location.href="http://www.plaync.co.kr";	
		}
	} else {
		//alert('장시간 미사용으로 세션이 종료되었습니다.\n다시 로그인해주시기 바랍니다.');
		//window.location.href="http://lovebeat.tocteen.daum.net";	
		window.location.href = web_login + "&return_url="  + escape(window.location);
	}
}
*/