/**
 * 실명인증 open api 
 * - callback : function  ( result );
 * - result : 
 * 		0000 - 인증됨( 실명인증, 성인인증 공용 ) 
 *   	1000 - 입력값 검증됨
 *   	1001 - 주민등록번호 형식에러 ( 문자 입력됨 )
 *      2001 - 실명인증 실패
 *      2002 - 미성년자 ( 성인인증 실패 )
 * - 조회사유 : ( '10'-회원가입, '20'-기존회원 확인, '30'-성인인증, '40'-비회원 확인, '90'-기타 사유 )  
 */
var jvRealCheck_interval;
	
jvRealCheck = {
		
    hostSSL:"https://ssl.jjanglive.com",

	postRequest:function( vars, callback, flag ) {
		
		jQuery.ajax({
			type: "GET",
			url: jvRealCheck.hostSSL+"/rncheck.jjang",
			data: vars,
			dataType: "jsonp",
			jsonp: "callback",
			async: false,
			success: function(data) {
				jvRealCheck.exCallback( callback, data.res, flag );
		    },
		    error: function(data){
		    	jvRealCheck.exCallback( callback, data.res, flag );
		    }
		});		

	},
	validation : function( name, resno ) {
	
		for(var i=0; i<resno.length; i++) {
			if(isNaN(parseInt(resno.charAt(i)))){
				return 1001; //문자로 입력할 수 없습니다.
			}
	    }
		var total = 0;
		for(var i = 0; i < resno.length; i++){
			if(i <= 7) {
			    total += parseInt(resno.charAt(i)) * (i + 2);
			} else if(i >= 8 && i <=11) {
			    total += parseInt(resno.charAt(i)) * (i - 6);
			}
		}
		var check = (11 - (total % 11)) % 10;
		if(parseInt(check) != parseInt(resno.charAt(12))){
			return 1002; //주민등록번호가 올바르지 않습니다. 다시 입력해주세요
		}
		return 1000;
	},
	checkRealname : function( name, resno, callback ) {
		res = this.validation(name, resno);
		if( res == 1000 ) {
			jvRealCheck.postRequest({ 
				cmd : "checkRealname",
				data: makeSendInfo( name, resno, "20", "1" )
			}, callback, 'S');
		} else {
			this.exCallback(callback, res,'S');
		}
	},
	checkAdult : function( name, resno, callback ) {
		res = this.validation(name, resno);
		if( res == 1000 ) {
			jvRealCheck.postRequest({ 
				cmd : "checkAdult",
				data: makeSendInfo( name, resno, "30", "1" )
			}, callback);
		} else {
			this.exCallback(callback, res);
		}
	},
	exCallback : function( callback, res, flag ) {
		
		//2011.10.19:ksc- uajjang 성인인증 쿠키설정
		if( res == '0000'){
			
			if(flag !=null && flag=="S"){
				// 실명인증인 경우 skip
			}
			else{
						
				var $frm=jQuery("<form name='uajjangForm' id='uajjangForm' target='uajjangFrame' method='post' action='/jlv.login.jjang?cmd=ssoSetAdultCookie' />").appendTo("body");
				
				var frame=document.getElementById('uajjangFrame');
				// 기존소스에 영향을 없도록 uajjangFrame이 있는 경우만 수행
				if(frame!=null){
					$frm.action = "/jlv.login.jjang?cmd=ssoSetAdultCookie";
					// 결과를 체크하지 않음
					$frm.submit();				
				}
			}	
		} 		
		
		jvRealCheck_interval=window.setInterval(function(){ 
			jvRealCheck.result(flag,res,callback); 
		}, 500); 
		
	},
    result: function(flag,res,callback) {
    	clearInterval(jvRealCheck_interval);
    	
    	if(flag!=null && flag=="Y"){
    		// flash에서 호출 했을 경우
    		jvRealCheck.thisMovie("homePlayer").checkAdultSync(res);
    	} else if( callback != null ) {
    		callback( res );
    	} else if( res == '0000' ) {
    		alert( "인증됨" );
    	} else {
    		alert( "인증실패!!" );
    	}
     },

	// 2011.10.14:ksc-Cookie에서 성인인증여부 확인
	// client Cookie를 확인할 수 있는나, 차후 Cookie암호화까지 고려 서버호출
	// flash 등 에서 ExternalInterface.call 등으로 호출
	checkAdultCookie : function(flag, callback) {

		jQuery.ajax({		 
		      type: "POST",
		      url: "/jlv.user.jjang",
		      data: "cmd=checkAdultCookie",
		      dataType: "json",
		      async: false,
		      success: function(data){
		    	  
					// flash에서 호출 했을 경우
					if(flag=="Y"){
						jvRealCheck.thisMovie("homePlayer").checkAdultCookie(data.res.toString());
						return;
					}
					
					if(data.message!=null){
						alert(data.message);
					}
										
					if( callback != null ) {
						callback(data.res);
					}
		      }
		});
	},
	// 2011.10.14:ksc-성인인증을 sync로 호출
	// 기존소스의 영향도를 최소화 하기 위해 checkAdult를 바꾸지 않고 신규생성
	checkAdultSync : function( flag, name, resno, callback ) {
		
		
		res = this.validation(name, resno);
		if( res == 1000 ) {
			jvRealCheck.postRequestSync(flag, name, resno, callback);
		} else {
			jvRealCheck.exCallback( callback, res, flag );
		}
	},
	postRequestSync:function(flag, name, resno, callback ) {

		jQuery.ajax({
			type: "GET",
			url: jvRealCheck.hostSSL+"/rncheck.jjang",
			data: { 
				cmd : "checkAdult",
				data: makeSendInfo( name, resno, "30", "1" )
			},
			dataType: "jsonp",
			jsonp: "callback",
			async: false,
			success: function(data) {
				jvRealCheck.exCallback( callback, data.res, flag );
		    },
		    error: function(data){
		    	jvRealCheck.exCallback( callback, data.res, flag );
		    }
		});		

	},
	thisMovie:function(movieName) {
	      if (navigator.appName.indexOf("Microsoft") != -1) {
	          return window[movieName];
	      }
	      else {
	          return document[movieName];
	      }
	  }
};
