var engok_host = window.location.host;  //当前域名
var engok_rrkey='1cd7744c621048bda778a1744fa51833';//人人apikey
var engok_rrfile='/xd_receiver.html';//人人频道文件
var engok_ssoUrl='http://reg.eassol.com/EassolSSOWeb/'; //SSO路径
var engok_id='http://www.engok.com/EnglishIDWeb/';
var engok_url='http://www.engok.com/';
var extendLoginUrl = engok_ssoUrl+'extendLogin.action';
var engok_domain = getDomain(engok_host);
function Header()
{
	this.path=engok_ssoUrl; //登录目录
	this.SSOCookieUrl = this.path+'user/writeCookie.action'; //SSO cookie
	this.localdomain = engok_domain;
}
function getDomain(host) {
		//delete the port
		host = host.replace(/www/,'');
        host = host.replace(/\:.*/,'');
        return host;
} 

Header.prototype.build=function(){
	var html ='';
	html +='<script src="'+this.path+'js/jquery.fancybox-1.2.1.js" type="text/javascript"></script>';
	html +='<link href="'+this.path+'style/login.css" rel="stylesheet" type="text/css" />';
	html +='<link href="'+this.path+'style/fancybox/jquery.fancybox.css" rel="stylesheet" type="text/css" />';
	html +='<div class="userInfoDiv"><div class="userInfo" id="topLogin"></div></div>';
	document.write(html);
};

Header.prototype.LoginUI=function(){
var html='<div id="loginUI" style="display:none">';
html +='<form id="loginForm" name="loginAction" action="'+this.path+'loginAction.action" method="post" onsubmit="return postForm(this);">';
html +='<table width="100%" height="233" border="0" cellpadding="0" cellspacing="1" >';
html +='<tr>';
html +='<td valign="top" bgcolor="#FFFFFF"><table width="100%" border="0" cellspacing="0" cellpadding="0">';
html +='<tr>';
html +='<td width="371" height="47" align="left" background="'+this.path+'images/top_Pop_title.gif" class="font14"><strong>&nbsp; 请登录</strong></td>';
html +='<td width="29" background="'+this.path+'images/top_Pop_title.gif">&nbsp;</td>';
html +='</tr>';
html +='</table>';
html +='<table width="90%" border="0" align="center" cellpadding="0" cellspacing="0">';
html +='<tr>';
html +='<td width="85" rowspan="5"><img src="'+this.path+'images/lock.gif" width="68" height="90" /></td>';
html +='<td align="right" class="font14">&nbsp;</td>';
html +='<td width="229" align="left" class="errorclass1"><span rel="msg"></span></td>';
html +='</tr>';
html +='<tr>';
html +='<td height="35" align="right" class="font14">帐 号：</td>';
html +='<td height="18" align="left">';
html +='<input maxlength="50" rel="s" id="userCode" name="userCode" type="text" class="input_forgot"  tabindex="0"/>';
html +='</td></tr>';
html +='<tr id="tr_psw">';
html +='<td height="35" align="right" class="font14">密 码：</td>';
html +='<td height="35" align="left">';
html +='<input maxlength="20" rel="s" id="password" name="password" type="password" class="input_forgot"/>';
html +='</td></tr>';
html +='<tr id="vetify_tr" class="vetify_tr"  style="display:none">';
html +='<td align="right" class="font14">验证码：</td>';
html +='<td align="left" class="font14">';
html +='<input rel="s" name="identifyCode" type="text" id="identifyCode" maxlength="4" size="4" class="input_code"/>';
html +='<img id="random" class="random" src="#" width="80" height="30" align="absmiddle" /> ';
html +='<span class="fontBlue12">';
html +='<a href="javascript:changeValidateCode()">换个图片</a>';
html +='</span>';
html +='</td></tr>';
html +='<tr><td height="51">&nbsp;</td><td align="left">';
html +='<input style="border:none" type="image" rel="btsubmit" name="imageField" id="imageField" src="'+this.path+'images/alertBtLoginUp.gif" />';
html +='<a href="'+this.path+'registerAction.action?from=englishOK" target="_blank"><img src="'+this.path+'images/alertBtRegUp.gif" width="66" height="32" hspace="10" border="0" /></a>';
html +='</td></tr>';
html +='<tr>';
html +='<td align="right" colspan="3"><a class="fontBlue12" href="'+this.path+'forgotPWDAction.action?from=englishOK" >忘记密码？</a>';
html +='</td></tr>';
html +='<tr>';
html +='<td></td><td colspan="2" class="rrlogin">人人登录加载中...</td>';
html +='</tr>';
html +='<tr>';
html +='<td height="10" colspan="3"></td>';
html +='</tr>';
html +='</table>';
html +='<input name="clientId" type="hidden" id="clientId" value="1" />';
html +='</td></tr></table>';
html +='</form></div>';
return html;
}

checkAndDispLogin=function(webkey,opt)
{
	if(typeof webkey == 'undefined')
		webkey = getCookie('WEBKEY');
	if(isObj(webkey))
	{
		$.ajaxSetup({cache:false});
		var checkUrl = engok_ssoUrl+'checkKey.action';
			$.ajax({
			type: 'GET',
			dataType: 'jsonp',
			url: checkUrl,
			data: {'webkey':webkey},
			success: function (data, status) {
				var count = data.count;
				saveCount(count);
				if(data.isok){ //if logined
					var userCode = data.userCode;
					var userId = data.uid;
					saveCookie('uid',userId);
					showLogin(userCode,userId);
					if(userCode=='') expireLogin(); //删除人人登录标记
				}else{
					//检查是否显示登录 注册。如果已显示则无需修改
					var len = $('#a_login').text().length;
					if(len==0)
					{
						showLogin('');
						expireLogin(); //删除人人登录标记
					}
				}
				if(isObj(opt)){
					if($.isFunction(opt.callback)){
							opt.callback(data,opt.id,opt.forware);
					}
				}
			},
			error: function (xhr, status, error) {
				alert('error: ' + status + ':\n' + error);
			}
		});
	}else{
		showLogin('');
		expireLogin(); //删除人人登录标记
	}
}

function changeValidateCode(){
	var obj=$("#fancy_div .random");
	//重载验证码

	var timenow = new Date().getTime();
	obj.attr("src",engok_ssoUrl+"random.action?d="+timenow);
	//超时执行;
	setTimeout(function(){obj.src=engok_ssoUrl+"random.action?d="+timenow;},20);
} 

function login(id,forware){
	var webkey = getCookie('WEBKEY');
	var checkUrl = engok_ssoUrl+'checkKey.action?webkey='+webkey+'&t='+Math.random();
	var loginUrl = '#loginUI';
	id="#"+id;	
	bindLoginBox(id,false);
	$(id).attr("href",loginUrl);
	if(typeof webkey == 'undefined' || webkey == 'undefined'){
		saveCookie("forware",forware);
		$(id).click();
	}else{
		checkAndDispLogin(webkey,{'callback':showLoginBox,'id':id,'forware':forware});
	}
}

function isObj(obj){
	return !(typeof obj == 'undefined' || obj == 'undefined')
}

//绑定登录窗口(绑定id，showVetify是否显示验证码)
function bindLoginBox(id,showVetify){
	var height = 283;
	if($.browser.msie){
		height=283;
	}
	$(id).fancybox({'frameHeight':height,'hideOnContentClick':false,'frameWidth':450,'padding':0,
		callbackOnShow:	function(){
			showMsg('');
			if(showVetify){
				changeValidateCode();
				$("#fancy_wrap .vetify_tr").show();
			}
			$("input[rel='s']").keypress(function(event){
				if(event.keyCode==13 || event.which==13){
					//postForm('#fancy_wrap #loginForm');
					//$('#imageField').click();
					$('#fancy_wrap input[rel="btsubmit"]').click();
				}
			});
		}
	});
}

function showLoginBox(data,id,forware){
	var count = data.count;
	saveCount(count);
	userCode = data.userCode;
	if(count>=4)
	  {
	  	bindLoginBox(id,true);
	  }
	  if(data.isok) //was logined
	  {
	  	if(forware!=""&&forware!="#"){
	  		saveCookie('forware','');
	  		window.location=forware;
	  	}
	  }else //not login
	  {
	  	saveCookie("forware",forware);
	  	$(id).click();
	  }
}

function getCookie(name){
	var strCookie = document.cookie;
	var arrCookie=strCookie.split("; ");
	var value;
	for(var i=0;i<arrCookie.length;i++){
		var arr=arrCookie[i].split("=");
		if(name==arr[0]){
			value=arr[1];
			break;
		}
	}
	value = unescape(value);
	return value;　
}

showLogin=function(usercode,userId){
	//default url
	url_center=engok_id+'/userspace/queryUserOpus.action'; //会员中心
	url_logout=engok_ssoUrl+'logout.action?preUrl=http://'+engok_host; //退出
	url_reg=engok_ssoUrl+'reg/registerAction.action?from=englishOK'; //注册
	//funtion var
	var html='';
	var webkey = getCookie('WEBKEY');
	if(usercode!='')
	{
	  //判断是否是人人用户，如果是人人用户，则增加人人图标
	  var rrico = '';
	  var invite ='<li><a href="'+engok_url+'invite/gotoInvite.action?inviteType=2">邀请好友</a></li>';
	  var rr = getCookie('rrlogin');
	  if(rr=='1'){
	  	rrico='<img src="'+engok_url+'images/renren/rr_logo.png" title="人人网连接登录" align="absmiddle"/>';
	  	invite ='<li><img src="'+engok_url+'images/renren/rr_small.png" align="absmiddle"/><a href="'+engok_url+'renren/rrInvite.action">邀请好友</a></li>';
	  }
	  url_logout = url_logout+'&webkey='+webkey;
	  html +='<li><span>hello,&nbsp;'+usercode+'</span>'+rrico+'</li>';
	  html +='<li class="user_line">[</li>';
	  /*html +='<li><a href="' + url_center + '?suserId=' + userId + '" target="_blank">iD主页</a></li>';*/
	  html +='<li id="IconDcb"><a href="http://www.engok.com/words/common.action" target="_blank">单词本</a></li>';	
	  html +='<li><a href="'+url_center+'" target="_blank">我的空间</a></li>';	  
	  html += invite;
	  html +='<li class="user_line">]</li>';
	  html +='<li><a href="javascript:renrenlogout(\''+url_logout+'\');">退出</a></li>';
	  html += '<li style="display:none"><a id="loginBox" rel="loginBox" href="#">弹出窗口</a>' +
	  		'<span id="loginUid">'+userId+'</span></li>';
	}else
	{
		var j_script = "javascript:login('loginBox','')";
		html += '<li><a id="a_login" href="'+j_script+'">登 录</a></li> <li class="user_line"></li> ';
		html += '<li><a target="_blank" href="'+url_reg+'">注 册</a></li>';
		html += '<li id="_rr_login_box" style="display:none"></li>';
		html += '<li id="_sina_login_box" style="display:none"></li>';	
	    html += '<li style="display:none"><a id="loginBox" rel="loginBox" href="#">弹出窗口</a></li>';
	}
	html += '<li><a class="btn_player" onclick="javascript:_sl_openbox();return false;" href="javascript:return false;"><span></span></a></li>'
	$("#topLogin").html(html);
};

function logout(callback){
	var isrr = getCookie('rrlogin');
	if(isObj(isrr) && isrr=='1'){
		$.getScript("http://static.connect.renren.com/js/v1.0/FeatureLoader.jsp",function(){
			XN_RequireFeatures(["Connect"], function(){
				XN.Main.init(engok_rrkey, engok_rrfile);
				XN.Connect.get_status().waitUntilReady(function (login_state) {
		               if (login_state == XN.ConnectState.connected) {
		               	 var isrr = getCookie('rrlogin');
		               	 expireLogin();
		                   XN.Connect.logout(function () {
		                       callback();
		                   });
		               }
		               else {
		                   callback();
		               }
		           });
		
			});
		});
	}else{
		callback();
	}
}

//切换用户 isLogin为true则重新显示登录框，否则只退出然后执行回调。特殊的登录形式在回调中执行。
function exchange_user(isLogin){
	var url_logout=engok_ssoUrl+'logout.action?callback=?'; //退出url
	logout(function(){
		$.getJSON(url_logout,function(data){
			if(data.msg=='ok'){
				loginCallback();//登录状态改变，执行登录回调
				showLogin('','');
				initRenren();
				//弹出登录窗口
				if(isLogin) login('loginBox','');
					
				//回调	
				if(typeof(exchangeCB)=="function"){
					exchangeCB();
				}
			}
		});	
	});
	
}
//登录完回调
function loginCallback(){
	if(typeof(loginCB)=="function"){
		loginCB();
	}
}

//去掉标签
function intercept(str)
{
	var first = str.indexOf("'");
	var last = str.lastIndexOf("'");
	if(first>0)
	{
		first=first+1;
		str = str.substring(first,last);
	}
	return str;
}

function showMsg(msg){
	$("span[rel='msg']").text(msg);
}
//submit form
function postForm(form)
{
	if($(form).find("#userCode").val()=="" || $(form).find("#password").val()=="")
	{
		showMsg("帐号或密码不能为空");
		return false;
	}else{
		showMsg("");
	}
	$.ajax({
	   type: "GET",
	   dataType:'jsonp',
	   url: $(form).attr("action"),
	   data: {
				userCode:encodeURI($(form).find("#userCode").val()),
				password:encodeURI($(form).find("#password").val()),
				identifyCode:$(form).find("#identifyCode").val()
			},
	   success: function(msg){
	   			if(msg.error!="") //if vetify false;
				{
					count=getCookie("count");
					if(isNaN(count)) count=0;
					count= parseInt(count);
					if(count>=3)
						$(form).find("#vetify_tr").show();
					count=count+1;
					saveCount(count);
					showMsg(msg.error);
					changeValidateCode();
					saveCount(count); //recode submit time
					//reset form
					$(form).find("#password").val('');
					$(form).find("#identifyCode").val('');
				}else // if submit success
				{
					//关闭窗口
					$("#fancy_close").click();
					expireLogin(); //删除人人登录标记
					var webkey = msg.webkey;
					var cookieUrls = msg.cookies;
					var uid = msg.uid;
					saveCookie('uid',uid);
					writeLoginCookie(webkey,cookieUrls);
					//显示积分分数
					disIntegration(msg.intscore);
					//执行登录后回调
					loginCallback();
				}
	   },
		error: function (xhr, status, error) {
			//alert("error: " + status + ":\n" + error);
		}
	}); 
	
	return false;
} 
//显示积分
function disIntegration(intscore){
	if(isObj(intscore)){
		var intes=intscore.split('|');
		if(intes.length>=2){
			$.getScript(engok_url+"js/score_update_tip.js",function(){
				score_update_tip(intes[0],intes[1]);
		});
		}
	}
}

function writeLocalWebKey(webkey)
{
	//write local cookie
	var date = new Date();
	date.setTime(date.getTime()+1*24*3600*1000);
	//save webkey
	writeCookieFile('WEBKEY',webkey,date.toGMTString());
	//save webkey time for client software
	writeCookieFile("WRITETIME",new Date().getTime(),date.toGMTString());
}

function writeCookieFile(name,value,time)
{
	if(isObj(time)){
		var date = new Date();
		date.setTime(date.getTime()+1*24*3600*1000);
		time = date.toGMTString();
	}
	value = escape(value);
	var localcookie = name+"="+value+";path=/;domain="+engok_domain+";expires="+time;
	document.cookie=localcookie;
}

function writeLoginCookie(webkey,cookieUrls){
	//write local cookie first
	writeLocalWebKey(webkey);
	var cookieArr = cookieUrls.split("|");
	for(cid in cookieArr){
		var html = ' <iframe src="'+cookieArr[cid]+'" style="display:none"/>';
		$(html).appendTo("body");
	}
	saveCount(0);
	//更新登录条
	checkAndDispLogin(webkey);
	//一秒后导航到forware页面
	window.setTimeout("goForware()",500);
}

function goForware(){
	var forware = getCookie("forware");
	if(!isObj(forware)) forware='';
	forware = $.trim(forware);
	if(forware!="" && forware!="#")
		window.location=forware;
}

//保存登录次数
function saveCount(count)
{
	var name = "count";
	saveCookie(name,count);
}

function saveCookie(name,value)
{
	value = escape(value);
	var str = name+"="+value+';path=/;domain='+engok_domain;
	document.cookie=str;
}
function deleteCookie(name){
	var date = new Date();
	date.setTime(date.getTime()-10000);
	document.cookie=name+'=;path=/;domain='+engok_domain+'expire='+date.toGMTString();
}
var header=new Header();

function buildHeader()
{
	header.build();
	var html = header.LoginUI();
	document.write(html);
}

//renren 连接
function saverrlogin(){
	var date = new Date();
	date.setTime(date.getTime()+5*3600*1000); //保存5小时
	writeCookieFile('rrlogin','1',date.toGMTString());
}
function expireLogin() //让人人帐号过期
{
	var date = new Date();
	date.setTime(date.getTime()-10000);
	writeCookieFile('rrlogin','2',date.toGMTString());
}
//login renren
function renrenlogin(){
	XN.Main.get_sessionState().waitUntilReady(function() {
	 var key = engok_rrkey+'_user';
	 var uid = getCookie(key);
	 rrmsg('获取人人信息中...');
	 getUserInfoAndLogin(uid);
　　});	
}
//logout renren 先退出人人后退出engok
function renrenlogout(url){
	logout(function(){
		window.location.href=url;
	});
}

var ssoLoginWin; // SSO登录窗口
var timeoutName; // 定时器名

/**
 * @desc SSO登录
 * @return
 */
function sinaLogin(){
	var url = engok_ssoUrl + "sina/requestToken.action?callbackDomain=" + window.location.hostname;
	ssoLoginWin = window.open(url,"新浪微博账户登录","directories=no, menubar=no, toolbar=no, location=no, scrollbars=no, resizable=no, status=no, width=600, height=420，top=300, left=400");
	// startReloadJob();
}

function startReloadJob() {
	timeoutName = setInterval("reloadTimeout()", 500);
}

/**
 * @desc 刷新窗口
 * @return
 */
function reloadTimeout() {
	if (!ssoLoginWin || ssoLoginWin.closed) {
		clearInterval(timeoutName);
		window.location.reload();
	}
}

//init renren 
function initRenren(){
	$.getScript("http://static.connect.renren.com/js/v1.0/FeatureLoader.jsp",function(){
		XN_RequireFeatures(["EXNML"], function(){
			XN.Main.init(engok_rrkey, engok_rrfile);
			//XN.Main.get_sessionState().waitUntilReady(function() {
			var html ='你也可以通过人人网 或新浪微博帐号登录<br/>';
			var loginbt = '<a onclick="XN.Connect.requireSession(function(){renrenlogin();});return false;" class="xnconnect_login_button" id="RES_ID_xn_login"><img id="xn_login_image" src="http://xnimg.connect.renren.com/img/connect/login_buttons/renren/connect_light_large.png" alt="Connect"/></a>';
			var loginbt2 = '<a title="用人人帐号连接本站" onclick="XN.Connect.requireSession(function(){renrenlogin();});return false;" class="xnconnect_login_button" id="RES_ID_xn_login"><img id="xn_login_image" src="http://wiki.dev.renren.com/mediawiki/images/b/bd/Logo16.png" title="用人人帐号连接本站"/></a>';
			var loginbt3 = '&nbsp;<a class="xnconnect_login_button" href="javascript:sinaLogin()"><img id="sina_login_image" src="http://www.sinaimg.cn/blog/developer/wiki/24.png" alt="Connect"/></a>';
			var loginsina = '<a title="用新浪帐号连接本站" href="javascript:sinaLogin();" class="xnconnect_login_button" id="RES_ID_xn_login"><img id="sina_login_image" src="http://www.sinaimg.cn/blog/developer/wiki/16x16.png" title="用新浪帐号连接本站"/></a>';
			html += loginbt;
			html += loginbt3;
			//$(html).appendTo("#rrloginBanner");
			//add login button to login Box
			rrmsg(html);
			//add login button to header
			if($('#a_login').text().length>0){
				$('#_rr_login_box').html(loginbt2);
				$('#_rr_login_box').show();
				$('#_sina_login_box').html(loginsina);
				$('#_sina_login_box').show();
			}
			//display button of client web
			$('#clientbt').show();
		});
	});
	
}

function rrmsg(msg){
	$('.rrlogin').html(msg);
}
//get user info and login renren with uid
function getUserInfoAndLogin(uid){
	 var arr=new Array(1);
	 arr[0]=uid
	 XN_RequireFeatures(["Api"], function() {
			XN.Main.init(engok_rrkey, engok_rrfile);
				XN.Main.get_sessionState().waitUntilReady(function() {
		　　　XN.Main.apiClient.users_getInfo(arr, ['uid','name','sex','mainurl'], function(result, ex) {
		        if (!ex) {
				  var photo=result[0].mainurl;
				  var uname=result[0].name;
				  var gender=result[0].sex;
				  //在eassol中2是女的。
				  if(gender==0) gender=2;
				  rrmsg('信息获取完毕，登录engok中...');
				  login4extend(uid,uname,gender,photo);
		        }
		      });
		   });
		 });
}
//engok longin with renren info
function login4extend(uid,username,gender,photo){
	$.ajax({
	   type: "GET",
	   dataType:'jsonp',
	   url:extendLoginUrl,
	   data: {
				socialUid:uid,
				providerId:1,
				userName:encodeURIComponent(username),
				gender:gender,
				userPhto:photo
			},
		success: function(msg){
			if(msg.code==0){ // login faile
				rrmsg(msg.error);
			}else{
				var webkey = msg.webkey;
				var cookieUrls = msg.cookies;
				//make renren login flag
				saverrlogin();
				//记录新鲜事
				$.getScript(engok_url+'js/renren.js',function(){
					rrFeedShowLogin();
				});
				rrmsg('登录成功！');
				//保存uid
				saveCookie('uid',msg.uid);
				//显示积分分数
				disIntegration(msg.intscore);
				//保存本地及其他域名下webkey
				writeLoginCookie(webkey,cookieUrls);
				check_rr_setup(msg.uid);//检查是否设置了新鲜事
				//执行登录后回调
				loginCallback();
			}
		},
		error: function (xhr, status, error) {
			alert("登录人人失败！: " + status + ":\n" + error);
		}
	});
}

function check_rr_setup(uid){
	url = engok_id + '/userspace/queryFreshNewsSetting.action?userId='+ uid +'&callback=?';
	$.getJSON(url,function(data){
		if(data==null)
			window.location.href=engok_url + 'jsp/common/rrsetup.jsp';
	})
}

$(document).ready(function() {
		checkAndDispLogin();
		$("a[rel='loginBox']").click( function (){login('loginBox',$(this).attr("href")); return false; });
	});
//renren init function must in window onload
if($.browser.msie){
	document.onreadystatechange = function(){ 
		if(document.readyState=="complete") { 
			initRenren();
			} 
	}
}else{
	window.onload = function(){ 
			initRenren();
	} 
}

//script for playerbox
var windowRef=null;
var player= {};
player.ids="";
player.win=null;
player.url=engok_url+"/jsp/player/playbox.jsp#content";
player.param="";
player.name="player";
player.PLAYER_POPUP_FEATURE = "scrollbars=0, resizable=0, status=0, width=800, height=621";
player.addSong=function(ids){
	player.param=ids;
	player.ids=ids;
	if (!windowRef || windowRef.closed){
	windowRef = window.open(player.url,player.name,player.PLAYER_POPUP_FEATURE);
	}
	try{
	 windowRef && windowRef.focus();
	 windowRef.addList(player.ids);	
	 player.ids="";
	}catch(e){}
	 return false;
}
function addToPlayer(){
	windowRef.addList(player.ids);	
	player.ids="";
	windowRef.focus();
}
var _sl_openbox = player.addSong;
var add_song_play_list = function(resourceId){
	_sl_openbox(String(resourceId));
}
var add_allsongs_play_list = function(listBoxId){
	var resourceIds=new Array()
$("a[class='addtoplayer']").each(function(){
		resourceId = $(this).attr("rel");
		if(resourceId!="")
			resourceIds[resourceIds.length] = resourceId;
	})
	_sl_openbox(resourceIds.join(","))
}

