rocknoon.namespace("Eccky.Api.BackService");


(
function(){
	
	var API_FORGET_PASSWORD = __BASE_URL__ + "/test/login";
	var API_CHANGE_PASSWORD = __BASE_URL__ + "/test/login";
	var API_ECCKY_USER_LOGIN = __BASE_URL__ + "/EcckyPortal/PortalManager";
	/**
	 * Layout Page Manager
	 */
	var backService = {
		
		
		FacebookLogin : function(){
			backService.LoginByPlatform("facebook",'');
			//var url = __BASE_URL__ + "/test/facebook";
			//window.open(url);
		},
		
		HyvesLogin : function(){
			backService.LoginByPlatform("hyves",'');
			//var url = __BASE_URL__ + "/test/facebook";
		    //window.open(url);
			//loginByPlatForm("hyves");
			
		},
		
		EcckyLogin : function( data , callback ){
			function loginCall(response){
				response = rocknoon.ajax.prase(response); 
				if(response.success&&response.ok) {
					backService.CallBackAfterLogin(response);
					//hack @author rocky
					callback(response);
				}else{
					alert("Please fill in your correct username and password!");
					//hack @author rocky
					callback(response);
				}
			}
			var param = {};param.data={};
			param.manager = "login";
			param.call = "ecckydotcom";
			param.data = "{\"userName\":\""+data.username+"\",\"password\":\""+data.password+"\"}";
			$.ajax({
				type: "POST",
				data: param,
				url : API_ECCKY_USER_LOGIN,
				complete : loginCall
			});
			
		},
		
		Play : function( div , token , from, is_first , status, language ,invite_code){
			//debugger;
			var settings = new Object();
			settings.JSPBase   = Eccky.Api.BackService.API_FLASH_JSPBASE;
			settings.flashbase = Eccky.Api.BackService.API_FLASH_FLASHBASE;
			settings.portalID = "ecckydotcom";
	                settings.signCode = invite_code;
			settings.mode = "game";
			settings.local = false;
			settings.loginType=from;
			//settings.userId=cacheObj.userId;
			settings.isFirst=is_first;
			settings.token=token;
			settings.status=status;
			if("en" == language)
				settings.lg="english";
			else
				settings.lg="dutch";
			var worldView = new WorldView(settings, document.getElementById(div));
		},
		
		Register : function( div , language ){
			backService.Play(div,'','','','',language);
		},
		
		DiamondPurchase : function( coinType , paymentType , uid , lang ){
			
			var url = Eccky.Api.BackService.API_DIAMOND +"?uid=" + uid + "&paymentType=" + paymentType + "&coinType=" + coinType;
			window.open(url);
		},
		
		GiftPurchase : function( coinType , paymentType  , email , lang ){
			
			var url = Eccky.Api.BackService.API_GIFT +"?uid=" + email + "&paymentType=" + paymentType + "&coinType=" + coinType;
			window.open(url);
		},
		
		ForgetPassword : function( email , lang, callbackurl , callbackfunction ){
			var param = {};param.data={};
			param.manager = "getbackPassword";
			param.call = "sendNew";
			param.data = "{\"email\":\""+email+"\",\"callbackurl\":\""+callbackurl+"\",\"lg\":\""+lang+"\"}";
			$.ajax({
				type: "POST",
				data: param,
				url : API_ECCKY_USER_LOGIN,
				complete : callbackfunction
			});
			
		},
		
		ChangePassword : function( password , token , lang ,  callbackfunction ){
			var param = {};param.data={};
			param.manager = "getbackPassword";
			param.call = "reset";
			param.data = "{\"password\":\""+password+"\",\"token\":\""+token+"\",\"lg\":\""+lang+"\"}";
			$.ajax({
				type: "POST",
				data: param,
				url : API_ECCKY_USER_LOGIN,
				complete : callbackfunction
			});
			
		},
		LoginByPlatform : function(loginType,callback){
			var response;
			function setResponse(res){
				response = res;
			}
			function loginCall(response){
				response = rocknoon.ajax.prase(response); 
				if(response.success) {
					//alert("loginType:"+loginType);
					if("facebook" == loginType){
						window.open(response.auth_url, "Portal Authorization", "height=600, width=1000");
					}else{
						Eccky.Page.Layout.Instance().setCloseDialogCallback(callback); 
						Eccky.Page.Layout.Instance().showDialog( response.auth_url , 600 , 450 );	
					}
					//window.open(response.auth_url, "Portal Authorization", "height=450, width=600");
				}
			}
			cacheObj.callback = callback;
			var data = {};
			data.manager = 'login';
			data.call = loginType;
			data.data = '';
			$.ajax({
				async:false,
				type: "POST",
				data: data,
				dataType: 'json',
				url : API_ECCKY_USER_LOGIN,
				complete : setResponse 
			});
			loginCall(response);
		}
		,
		CallBackAfterLogin : function (obj){
//			cacheObj.userId=obj.platformUid;
//			cacheObj.token=obj.token;
//			cacheObj.loginType=obj.loginType;
//			cacheObj.isFirst=obj.isFirst;
//			cacheObj.status=obj.status;
//			for(var i in cacheObj)
//		    alert(i+":"+cacheObj[i]);
			if(null == obj.userName || 'null' == obj.userName || '' == obj.userName )
				return;
			var response = {};  response.info = {};
			response.status = 1;
			response.info.isFirst = obj.isFirst; 
			response.info.status = obj.status; 
			response.info.user_id = obj.uid;
			response.info.user_name  = obj.userName;
			response.info.user_level = obj.level;
			response.info.diamonds   = obj.diamonds;
			response.info.is_membership   = obj.isMembership;
			response.info.coins      = obj.coins;
			response.info.messages_count = obj.mailAmount;
			response.info.character_pic  = obj.characterpic;
			response.info.shead_shot  = obj.sheadshot;
			response.info.lhead_shot  = obj.lheadshot;
			response.info.token     = obj.token;
			response.info.from      = obj.loginType;
			//alert(obj.loginType);
			Eccky.Page.Layout.Instance().login(response);
			if('' != cacheObj.callback && undefined != cacheObj.callback && null != cacheObj.callback){
				obj.success=true;
				obj.ok=true;
				cacheObj.callback(obj);
				cacheObj.callback='';
			}
		},
		SendMsgByFlash : function(data,callBack){
			function loginCall(response){
				response = rocknoon.ajax.prase(response); 
				if((("login"== data.manager&& "ecckydotcom" == data.call)||("register"== data.manager&& "setExtraInfo" == data.call)) && response.success&&response.ok){
					Eccky.Api.BackService.CallBackAfterLogin(response);
				}
				callBack(response);
			}
			$.ajax({
				type: "POST",
				data: data,
				dataType: 'json',
				url : API_ECCKY_USER_LOGIN,
				complete : loginCall
			});
		},
		FriendInvitation : function(loginType,callback){
			Eccky.Page.Layout.Instance().setCloseDialogCallback(callback); 
			if("facebook" == loginType){
				Eccky.Page.Layout.Instance().showDialog( __BASE_URL__+"/fb_invite.php" , 600 , 450 );
			}else{
				Eccky.Page.Layout.Instance().showDialog( __BASE_URL__+"/hyves_invite.php" , 600 , 450 );
			}
				
		}
	};
	
	
	
	
	
	Eccky.Api.BackService = backService;
	

	
}		
)();

