Mys.Session = function(data)
{
	if(data)
		this.setData(data);
	this.member_login = window.isMemberLogin;
};

Mys.Session.prototype =
{
	isAdmin : function()
	{
		return this.isLogin() && this.is_admin == 1;
	},
	
	isLogin : function()
	{
		return this.login_user_id ? true : false;
	},
	
	isMemberLogin : function()
	{
		return this.member_login ? true : false;
	},
	
	getID : function()
	{
		return this.isLogin() ? this.login_user_id : null;
	},
	
	getNick : function()
	{
		return this.isLogin() ? this.login_nick : null;
	},

	setData : function(data)
	{
		if(data && data.response.code == 100 && data.response.login_user_id)
		{
			this.login_email = data.response.login_email;
			this.login_nick = data.response.login_nick;
			this.login_user_id = data.response.login_user_id;
			this.now = data.response.now;
			this.is_admin = data.response.is_admin;
			this.saved_email = data.response.saved_email || "";
			
			data.response.promotion = data.response.promotion || {};
			
			this.promotionTitle = data.response.promotion.title || "현재 진행중인 프로모션이 없습니다.";
			this.promotionUrl =  data.response.promotion.url || "#";
			this.promotionTarget =  data.response.promotion.target || 1;
		}
		else
		{
			this.unsetData();
		}
	},
	
	unsetData : function()
	{
		this.login_email = null;
		this.login_nick = null;
		this.login_user_id = null;
		this.is_admin = null;
	},
	
	checkMemberLogin : function(url)
	{
		if(!this.isMemberLogin() && confirm("회원사 로그인이 필요합니다. 로그인 하시겠습니까?"))
			(function(){location = "/member/companylogin.htm?rurl=" + (url || location + "").encode();}).defer(1);
		
		return this.isMemberLogin();
	},
	
	checkLogin : function(url, message){
		if(!this.isLogin() && confirm(message ? message : "로그인이 필요합니다. 로그인 하시겠습니까?"))
			(function(){location = "/member/login.htm?url=" + (url || location + "").encode();}).defer(1);
		
		return this.isLogin();
	}
	
	,getEmail : function() {
		return this.login_email;
	}
	,getSavedId : function(){
		return this.saved_email;
	}
	,getPromotionTitle : function(){
		return this.promotionTitle;
	}
	,getPromotionUrl : function(){
		return this.promotionUrl;
	}
	,getPromotionTarget : function(){
		if(this.promotionTarget==0)
			return false;
		else
			return true;
	}
};
var sessionData;

Global.Session = new Mys.Session(sessionData);