var validator = {"CURRENT_YEAR":2010,"PASSWORD_MATCH_SIMPLE":["^1234$|^2345$|^3456$|^4567$|^5678$|^6789$|^7890$","^(.)(\\1)*$"],"CURRENT_DAY":19,"GUARDIAN_AGE":"17","PASSWORD_SIMPLE_EXP":["^1234$|^2345$|^3456$|^4567$|^5678$|^6789$|^7890$","^(.)(\\1)*$"],"CURRENT_MONTH_BASE0":3,"MEMBERID_MINLENGTH":"4","MEMBERID_ADMIN_ID_EXP":"^$","PASSWORD_MAXLENGTH":"20","MIN_AGE":"13","MEMBERID_VALID_ID_EXP":["^\\w*$"],"PASSWORD_MINLENGTH":"6","EMAIL_MAXLENGTH":"80","PASSWORD_MATCH_VALID":["(^.*(?=.*\\d)(?=.*[a-zA-Z]).*$)|(^.*(?=.*\\d)(?=.*[!@#$%^&*/+=?]).*$)|(^.*(?=.*[a-zA-Z])(?=.*[!@#$%^&*/+=?]).*$)"],"MEMBERID_FORBIDDEN_ID_EXP":"^$","NICKNAME_MAXLENGTH":"20","NAME_MAXLENGTH":"20","HINTANSWER_MAXLENGTH":"20","MEMBERID_MAXLENGTH":"20"}; 
var __ijjiLoginUrl;
var validMemberId = null;

function initMemberIdCheck() {
	validMemberId = null;
}

function showFBLayerPop(action){
	$j("#fbnotdimmer").addClass("dimmer");
	var obj = document.getElementById("fb_ly_" + action);
	obj.style.display="block"; 
}
function hideFBLayerPop(action){
	$j("#fbnotdimmer").removeClass("dimmer");
	var obj = document.getElementById("fb_ly_" + action);
	obj.style.display="none"; 
}

function fbcCallback(json) {
	var action = json.action;
	var email = json.userEmail;
	switch (action) {
		case "fbLogin":
			fbcLogin();
			break;
		case "fbRegister":
			showFBLayerPop(action);
			break;
		case "ijjiLogin":
			setUserEmail(email);
			showFBLayerPop(action);
			break; 
		case "banUser":
			showFBLayerPop(action);
			break;
		case "fbAuthFailed":
			alert("Invalid Facebook ID or Password!");
			break;
	} 
}

function fbcRegisterCallback(json) {
	var result = json.result;
	var msg = json.message;

	hideFBLayerPop("fbRegister");
	setExtendedPerms("fbRegister");
}

function fbcCheckIdCallback(json) {
	
	var usable = json.usable;
	var memberid = json.memberid;
	var field = document.getElementById("memberid");
	var output = "error_memberid";
	
	if (usable) {
		goAlertFbc(memberid + " is available.", field, output);
		validMemberId = true;
	} else {
		goAlertFbc(memberid + " is unavailable.", field, output);
		field.value = "";
		validMemberId = false;
	}	
}

function fbcLoginCallback(json) {
	var url = json.fbcLoginUrl;
	document.location.href = url;
	
	/*if (url == "reactor") {
		window.external.navigateurl("offline\\index2_en.html");
	} else {
		document.location.href = url;
	}*/							
}

function ijjiLoginCallback(json) {
	
	if (json == null) {
		alert("Login Failed");
	}
	
	var url = json.fbcLoginUrl;
	var code = json.code;
	var message = json.message;
	var loginFailCode = json.loginFailCode;
	var randkeyseq = json.randkeyseq;
	var randkeyval = json.randkeyval;
	
	
	var field = document.getElementById("ijjiLogin_memberid");
	var output = "ijjiLogin_msg";

	if (loginFailCode=="continuousLoginFail" || loginFailCode=="randomkeyAbsenceFail" || loginFailCode=="randomKeyFail") {
		getRandomKey(randkeyseq, randkeyval);
		showFBLayerPop("randomkey");
		return;
	}
	
	if (code == '' || code == null) {
		hideFBLayerPop("ijjiLogin");
		setExtendedPerms("ijjiLogin");
		setMemberId(json.memberid);
		__ijjiLoginUrl = url;				
	} else {
		goAlertFbc(message, field, output);
	}	
}

function ijjiLoginSuccess() {
	hideFBLayerPop('ijjiLogin_result');
	document.location.href = __ijjiLoginUrl;
}


function onUserConnected() {
	var isPerm = "F";
	FB.Connect.showPermissionDialog("email", function(perms) {
		
		//alert("email_perms:" + perms);
		fbc();
		
	});						 						 
}

function setExtendedPerms(loginType) {
	FB.Connect.showPermissionDialog("publish_stream,offline_access", function(perms) {
		if (!perms) {
			isPerm = "F";
		} else {
			isPerm = "T";
		}
		//alert("Perms:" + perms);
		if (loginType == "ijjiLogin") {
			showFBLayerPop("ijjiLogin_result");
		} else {
			showFBLayerPop("fbRegister_result");	
		}
	});
}

function setUserEmail(email) {
	var msg = "The email <span class='org'>" + email + "</span> is already registered with ijji.com.";
	document.getElementById("userEmail").innerHTML = msg;
}

function setMemberId(memberid) {
	document.getElementById("userMemberid").innerHTML = memberid;
}

function changeLayer() {
	hideFBLayerPop('fbRegister');
	showFBLayerPop('ijjiLogin');
}

function getFbSessionStatus() {
	FB.ensureInit(function() { 
		FB.Connect.get_status().waitUntilReady( function( status ) { 
			switch ( status ) { 
				case FB.ConnectState.connected: onUserConnected(); loggedIn = true; break; 
				case FB.ConnectState.appNotAuthorized: onUserConnected(); break;
				case FB.ConnectState.userNotLoggedIn: FB.Connect.requireSession(function () {getFbSessionStatus();}); loggedIn = false; break; 
			} 
		}); 
	}); 
}

function getFinalFbSessionStatus() {
	FB.ensureInit(function() { 
		FB.Connect.get_status().waitUntilReady( function( status ) { 
			switch ( status ) { 
				case FB.ConnectState.connected: loggedIn = true; break; 
				case FB.ConnectState.appNotAuthorized: loggedIn = true; break;
				case FB.ConnectState.userNotLoggedIn: loggedIn = false; break; 
			} 
		}); 
	}); 
	return loggedIn;
}

function fbcWbers(subject, section) {
	try { 
		var url = adjustIjjiUrl("http://wbers.ijji.com/wbers/post.php?project=fbconnect&subject=" + subject + "&section=" + section + "&lang=" + getLangCode());
		$j("body").append('<iframe src="' + url + '" id="__wbersFbcFrame" width="0" height="0" style="display:none;"/>');
	} catch (e) {}
}
