﻿//window.onerror=errorHandler;
function errorHandler(){
	var arglen=arguments.length;
	var errorMsg="参数个数："+arglen+"个";
	for(var i=0;i<arglen;i++){
  	 errorMsg+="\n参数"+(i+1)+"："+arguments[i];
	}
	alert(errorMsg);
	window.onerror=null;
	return true;
}

var BiSysDomain="http://pay.tv33.net";

var BiSys_MsgBox=null;
function callback_BiSys(ErrMsgandUrl){	//{ErrMsg:"NotLogin|NotOrder|" ,ServiceType:"LSTV|TSTV|VOD" ,URL:""}
	//alert(ErrMsgandUrl.ErrMsg+","+ErrMsgandUrl.URL);
	if(ErrMsgandUrl.ErrMsg){
		if(ErrMsgandUrl.ErrMsg == "NotLogin"){	//收费频道，用户还未登陆提示登陆
			//alert("该频道为收费频道，请先登陆！");				
			BiSys_MsgBox=new MessageBox("BiSys_MSGDIV" ,295 ,250);
			BiSys_MsgBox.setContent(getDivContent({type:"login"}));		
			BiSys_MsgBox.show();
			var varBiSys_UserName=BiSys_GetCookie('BiSys_UserLoginEmailorId');
			if(varBiSys_UserName!==""){
				document.getElementById("BiSys_UserName").value=varBiSys_UserName;
				document.getElementById("BiSys_Password").focus();
			}else{
				document.getElementById("BiSys_UserName").focus();				
			}
		}else if(ErrMsgandUrl.ErrMsg == "LoginStateError"){
			BiSys_MsgBox=new MessageBox("BiSys_MSGDIV" ,295 ,120);
			BiSys_MsgBox.setContent(getDivContent({type:"msg" ,msgtxt:"用户登录状态错误。"}));
			BiSys_MsgBox.show();
		}else if(ErrMsgandUrl.ErrMsg == "LoginedOtherHost")	{
			BiSys_MsgBox=new MessageBox("BiSys_MSGDIV" ,295 ,120);
			BiSys_MsgBox.setContent(getDivContent({type:"msg" ,msgtxt:"您的账号<font color=red>已在别登陆</font>，您已被迫下线。<br /><br /><span style=\"color:red;cursor:hand\" onclick=\"BiSys_MsgBox.close();BiSys_MsgBox=new MessageBox('BiSys_MSGDIV' ,295 ,250);BiSys_MsgBox.setContent(getDivContent({type:'login'}));BiSys_MsgBox.show();\">重新登录。</span>"}));
			BiSys_MsgBox.show();
		}else if(ErrMsgandUrl.ErrMsg == "NotOrder")	{//收费频道，用户已登陆，但未购买该频道提示购买
			BiSys_MsgBox=new MessageBox("BiSys_MSGDIV" ,295 ,120);
			BiSys_MsgBox.setContent(getDivContent({type:"msg" ,msgtxt:"您没有订购该服务，是否<a href='"+BiSysDomain+"/servlet/SetUserLoginStatInterface?srvType="+ ErrMsgandUrl.ServiceType +"&userEmail="+BiSys_GetCookie('BiSysUserEmail')+"&loginStub="+BiSys_GetCookie('BiSysSessionId')+"' target=_blank><span style='color:#F00;font-weight:bold'>现在就订购</span></a>该服务?"}));
			BiSys_MsgBox.show();
		}else if(ErrMsgandUrl.ErrMsg == "ChannelIdNull"){	//收费频道，用户已登陆，但未购买该频道提示购买
			BiSys_MsgBox=new MessageBox("BiSys_MSGDIV" ,295 ,120);
			BiSys_MsgBox.setContent(getDivContent({type:"msg" ,msgtxt:"请求的Id为空，请检查。"}));
			BiSys_MsgBox.show();
		}	
	}else if(ErrMsgandUrl.URL){	//服务器返回正确的地址					
		if(ErrMsgandUrl.URL==""){
			alert("获取节目接入地址异常！");
		}else
			callback_exePlay(ErrMsgandUrl.URL);		//调用客户端播放组件播放
	}
}

function getDivContent(MsgTypeandMsg){	//{type:"login|msg" ,msgtxt:"txt"}
	if(MsgTypeandMsg.type=="login"){
		//下面变量在构建客户端提醒窗口时使用
		return "<div id=\"BiSys_LoginDiv\" class=\"BiSys_MsgDiv\" style=\"display: block;\">"+
		"<h2>"+
		"  <input type=\"button\" title=\"退出登录\" onclick=\"BiSys_MsgBox.close();\" />"+
		"  <a href=\"javascript:void(0)\" id=\"BiSys_LoginTab_Email\" class=\"select\">用户登录</a> </h2>"+
		"<ul>"+
//		"  <fieldset style=\";display:block;border:1px solid #C5EFFF;width:260px;padding:5px;\">"+
//		"  <legend>快速通道</legend>"+
//		"  <div style=\"color:#1973C1;margin:5px 0px;\">每次捐助一元，输入手机号码后数秒即可捐助成功，所有节目24小时内任您看，快来体验吧！</div>"+
//		"  <form method=\"post\" onsubmit=\"return BiSys_SmsPay(0)\">"+
//		"    &nbsp;&nbsp;"+
//		"    <input type=\"text\" value=\"请输入中国移动手机号码\" onfocus=\"if(this.value=='请输入中国移动手机号码')this.value='';\" name=\"phoneNo\" id=\"BiSys_PhoneNo\" class=\"text\" style=\"width:145px\"/>"+
//		"    <input type=\"submit\" value=\"手机支付\" class=\"btn\" id=\"BiSys_SmsPayBtn\" />"+
//		"    <br/>"+
//		"    (所有节目任您看，1元/次，宏远购票代扣)"+
//		"  </form>"+
//		"  </fieldset>"+
		"  <fieldset style=\"margin-top:5px;display:block;border:1px solid #C5EFFF;width:260px;padding:5px;\">"+
		"  <legend>会员登录</legend>"+
		"  <div style=\"color:#1973C1;margin:5px 0px;\">注册莘莘会员，所有节目免费看。</div>"+
		"  <form id=\"BiSys_LoginForm\" name=\"BiSys_LoginForm\" action=\"http://pay.tv33.net/BiSys/servlet/UserLogin\" method=\"post\">"+
		"    <input id=\"BiSys_LoginType\" name=\"LoginType\" type=\"hidden\" value=\"\" />"+
		"    ID/Email："+
		"    <input id=\"BiSys_UserName\" name=\"username\" type=\"text\" class=\"text\" />"+
		"    <br/>"+
		"    <div style=\"height:4px;line-height:4px\"></div>"+
		"      &nbsp;密 码："+
		"    <input id=\"BiSys_Password\" name=\"password\" type=\"password\" class=\"text\" onkeydown=\"if(event.keyCode == 13) BiSys_CheckandSubmitForm();\"  />"+
		"    <br/>"+
		"    <div style=\"height:4px;line-height:4px\"></div>"+          
		"    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type=\"button\" value=\"登录\" class=\"btn\"  onclick=\"BiSys_CheckandSubmitForm()\" />"+
		"    <a href=\"http://pay.tv33.net/BiSys/Passport/UserReg.html\" target=\"_blank\" valign=\"top\">免费闪电注册</a>"+
		"  </form>"+
		"  </fieldset>"+
		"</ul>"+
		"</div>";
	}else if(MsgTypeandMsg.type=="msg"){
		 return MsgDivHTMLText="<div id=\"BiSys_MsgDiv\" class=\"BiSys_MsgDiv\" style=\"display: block;\">"+
		  "<h2>"+
		  "<input type=\"button\" title=\"关闭窗口\" onclick=\"BiSys_MsgBox.close();\" /><span style=\"margin-top:5px;font-weight:bold;height:24px; line-height:24px;\">莘莘网视用户提醒</span>"+
		 "</h2>"+
		 "<ul><br />"+
		    "<li style=\"margin-left:-50px;\">"+MsgTypeandMsg.msgtxt +" </li><br />"+
		  "</ul>"+
		"</div>";
	}else
		return "";
}
var fastSmsPayProxyUrl=null;

function IsMobile(s) { var flg=false; var field13=/^13\d{9}$/g; var field15=/^15[0,1,3,5,6,7,8,9]\d{8}$/g; var field18=/^18[6,8,9]\d{8}$/g; if((field13.exec(s))||(field15.exec(s))||(field18.exec(s))) { flg=true; } else { flg=false; } return flg; }
function IsCMCCMobile(s) { var flg=false; var field13=/^13[4,5,6,7,8,9]\d{8}$/g; var field15=/^15[0,1,2,8,9]\d{8}$/g; var field18=/^18[8]\d{8}$/g; if((field13.exec(s))||(field15.exec(s))||(field18.exec(s))) { flg=true; } else { flg=false; } return flg; }

//发起Sms交易
function BiSys_SmsPay(ignoreSugg){
	var phoneNo= document.getElementById("BiSys_PhoneNo").value;
	if(!IsCMCCMobile(phoneNo)){
		alert("您输入的手机号码有误，请输入中国移动的手机号码！");
		return false;
	}
	document.getElementById("BiSys_SmsPayBtn").disabled=true;
	document.getElementById("BiSYs_AccessServerProxy").src="http://pay.tv33.net/servlet/Sms_CreateTrade?payMode=fast&phoneNo="+phoneNo+"&ignoreSugg="+ignoreSugg;	//调用BiSys组件
	return false;
}
 //发起Sms交易的回调
function callback_createSmsPay(retCode,trdId){//vitalParaLost,PhoneNoError,SSCoinCountError,genTradeNoFailed,SmsSendSucc,tradeDataError,SmsPaygateStatusError,SmsPaygateTimeOut
	document.getElementById("BiSys_SmsPayBtn").disabled=false;
	if(retCode=="SmsSendSucc"){
		window.setTimeout("QuerySmSPayStat(\""+trdId+"\")",10);
		alert("扣费短信已发送到您的手机上，请根据短信提示回复Y或y即可成功支付。");
	}else if(retCode=="PhoneNoError")
		alert("您输入的扣费手机号码错误，请检查后重新输入。");
	else if(retCode=="userNotExist")
		alert("你输入的莘莘账号不存在，请检查后重新输入。");
	else if(retCode=="SuggRegVip"){
		if(window.confirm("您本月按次支付观看节目已有10次，建议您注册为会员包月观看节目。\r\n您要现在注册为会员吗？")){
			window.location="http://pay.tv33.net";
		}else{//用户不接受包月建议，重发一次Sms交易
			window.setTimeout("BiSys_SmsPay(1)",10);
		}
	}else
		alert("扣费异常，错误代码："+retCode);
}

var curTradeId=null;
//查询支付当前状态
function QuerySmSPayStat(trdId){
	curTradeId=trdId;
	document.getElementById("BiSYs_AccessServerProxy").src="http://pay.tv33.net/servlet/QuerySmsPayStatus?querymode=fast&isNeedUrl=1&channelId="+glb_curPlayingChnTag+"&trdNo="+trdId+"&rnd="+new Date().getTime();
}

//查询支付当前状态的回调
function callback_QuerySmsPayStat(data){
	if(data.retCode=="Succ"){
		BiSys_SetCookie("BiSysUserEmail",data.email,24);
		BiSys_SetCookie("BiSysNickName",data.nickName,24);
		BiSys_SetCookie("BiSysSessionId",data.sessionId,24);
		BiSys_SetCookie("BiSys_logintype","smsfastpay",24)
		
		BiSys_MsgBox.close();
		initLoginState();
		alert("支付成功！\r\n点击“确定”后Banacast将开始为您播放节目...");
		callback_exePlay(data.proUrl);
	}else if(data.retCode=="Failed"){//交易已经失败		
	}else if(data.retCode=="uncertain"){
		window.setTimeout("QuerySmSPayStat(\""+curTradeId+"\")",1000);
	} else{
		alert("支付状态异常!data.retCode="+data.retCode);
	}
}
//*****供外部系统调用的入口*****	
function BiSys_getChannelUrl(chnTag){	//channelUrl示例：LSTV:22211
	document.getElementById("BiSYs_AccessServerProxy").src="http://pay.tv33.net/BiSys/OutAccessGate/servlet/DoGetLSTVChannelURL?ue="+ escape(BiSys_GetCookie("BiSysUserEmail"))+"&sid="+escape(BiSys_GetCookie("BiSysSessionId"))+"&cid="+escape(chnTag)+"&st=LSTV&chktype="+escape(BiSys_GetCookie("BiSys_logintype"))+"&randNo="+(new Date()).getTime();	//调用BiSys组件
	//alert(document.getElementById("BiSYs_AccessServerProxy").src)	;
}

//回调时使用，当用户登录成功，帮助用户进行频道的二次连接
function BiSys_PlayUrlAfterLoninSucc(){	
	var NickName=BiSys_GetCookie("BiSysNickName");
	if(window.confirm("欢迎您！\""+NickName+"\"。您需要Banacast为您播放您刚才点击的节目吗？")==true){
		window.setTimeout("BiSys_getChannelUrl("+glb_curPlayingChnTag+")",10);
	}	
}
function login_switchLoginTypeTab(tabObj){
	tabObj.blur();				
	if(tabObj.id == "BiSys_LoginTab_Email"){
		if(tabObj.className != "select"){						
			document.getElementById("BiSys_LoginTab_UserID").className="";
			tabObj.className="select";
			document.getElementById("BiSys_LoginTypeLabel").innerHTML="Email：";
			document.getElementById("BiSys_LoginType").value="email";
		}
	}else if(tabObj.id == "BiSys_LoginTab_UserID"){
		if(tabObj.className != "select"){
			document.getElementById("BiSys_LoginTab_Email").className="";
			tabObj.className="select";
			document.getElementById("BiSys_LoginTypeLabel").innerHTML="莘莘ID：";
			document.getElementById("BiSys_LoginType").value="userid";
		}
	}		
}
			
function BiSys_CheckandSubmitForm(){
	if(isNaN(document.getElementById("BiSys_UserName").value)){ //输入非数字，就采用Emial方式尝试
		document.getElementById("BiSys_LoginType").value="email";
	}else{
		document.getElementById("BiSys_LoginType").value="userid";
	}
	if(document.getElementById("BiSys_UserName").value == ""){
		if(document.getElementById("BiSys_LoginType").value == "email")
			alert("请填写您的Email！");	
		else 
			alert("请填写您的用户ID！");	
		return false;
	}
	if(document.getElementById("BiSys_LoginType").value == "email"){
		if( !checkEmail(document.getElementById("BiSys_UserName").value)){
			alert("Email格式不正确！");
			return false;
		}
	}	
	if(document.getElementById("BiSys_Password").value == ""){
		alert("请填写您的登陆密码！");
		return false;	
	}	
	BiSys_SetCookie('BiSys_UserLoginEmailorId',document.getElementById("BiSys_UserName").value,24*7); //保留用户登陆Email或Id一周
	//document.getElementById("fnlogin").disabled=true;
	document.getElementById("BiSYs_AccessServerProxy").src="http://pay.tv33.net/BiSys/servlet/UserLogin?LoginType="+ escape(document.getElementById("BiSys_LoginType").value) +"&username="+  escape(document.getElementById("BiSys_UserName").value) +"&password="+ escape(document.getElementById("BiSys_Password").value)+"&atp=webscript";	//调用BiSys组件		
	//document.getElementById("BiSys_LoginForm").submit();
}	
		
/**
* 验证输入的字符串是否符合电子邮件的规则.
* @param {Object} str
*/
function checkEmail(str){
	var patn=/^[_a-zA-Z0-9\-]+(\.[_a-zA-Z0-9\-]*)*@[a-zA-Z0-9\-]+([\.][a-zA-Z0-9\-]+)+$/;
	if(!patn.test(str)||str.length>50){
		return false;
	}else{
		return true;
	}
}
	
//下面全局变量在页面尺寸改变事件时需要
var BiSys_PopDiv=null;
var BiSys_BackDiv=null;

var BiSys_PopDivWidth=null;
var BiSys_PopDivHeight=null;

function observe(controller,name,wrapper){
	if (controller.addEventListener) {	
		controller.addEventListener(name,wrapper,false);
	} else {
		controller.attachEvent("on"+name,wrapper);
	}
}

function stopObserving(controller,name,wrapper){
	if (controller.removeEventListener) {
		controller.removeEventListener(name,wrapper,false);
	} else {
		controller.detachEvent("on"+name,wrapper);
	}
}

function newElement(){
	var myElement=document.createElement(arguments[0]);
	for(var i=1;i <arguments.length;i++){	
		myElement.setAttribute(arguments[i].name,arguments[i].value);		
	}
	return myElement;
}

var MessageBox=function(id,width,height){
	this.BiSys_PopDiv=null;
	this.BiSys_BackDiv=null;
	this.id=null;
	this.inserted=false;
	this.width=width;
	BiSys_PopDivWidth=width;
	this.height=height;
	BiSys_PopDivHeight=height;
	this.title='';
	if(id){
		this.id=id; 
	}
	else{
		this.id="mb_"+new Date().getTime();
	}
	this.BiSys_PopDiv=newElement("div",{name : "id",value : this.id+"_pop_div"});
	this.BiSys_BackDiv=newElement("div",{name : "id",value : this.id+"_back_div"});	
	this.BiSys_BackDiv.style.cssText="background-color:'black';filter:alpha(opacity=40);Moz-opacity:0.4;position:absolute;left:0px;top:0px;z-index:1000"	
	BiSys_PopDiv=this.BiSys_PopDiv;
	BiSys_BackDiv=this.BiSys_BackDiv;
};

MessageBox.prototype.setContent=function(divHTMLContent){
	//var wp='<div style="height:'+this.height+'px;width:'+this.width+'px;background:#EEF7FE;border:1px solid #B8D2F5;position:absolute;left:-3px;top:-3px;text-align:center;"><h6><span style="float:right;padding:0 5px 0 0;"><a href="#" id="'+ this.id+'_close_btn" title="关闭">X</a></span>'+this.title+'</h6>'+content+'</div>';	
	this.BiSys_PopDiv.innerHTML=divHTMLContent;
	this.BiSys_PopDiv.style.cssText="position:absolute;z-index:1001";	
};


MessageBox.prototype.show=function(){
	if(!this.inserted){
		document.body.appendChild(this.BiSys_PopDiv);
		document.body.appendChild(this.BiSys_BackDiv);
		observe(window,'resize',this.setPos);
		observe(window,'scroll',this.setPos);
		//observe(document.getElementById(this.id+"_close_btn"),"click",this.close);		
		this.setPos();		
		this.inserted=true;
	}	
	//this.BiSys_PopDiv.style.display="block";
	//this.BiSys_BackDiv.style.display="block";
};

MessageBox.prototype.close=function(){
	//BiSys_PopDiv.style.display="none";
	//BiSys_BackDiv.style.display="none";
	stopObserving(window,'resize',this.setPos);
	stopObserving(window,'scroll',this.setPos);
	//document.getElementById(this.id+"_close_btn").stopObserving("click");
	document.body.removeChild(this.BiSys_PopDiv);
	document.body.removeChild(this.BiSys_BackDiv);
	BiSys_MsgBox=null;
}

MessageBox.prototype.setPos=function(){
	var left=((document.documentElement.clientWidth - BiSys_PopDivWidth)/2+document.documentElement.scrollLeft) +"px";
	var top=((document.documentElement.clientHeight - BiSys_PopDivHeight)/2+document.documentElement.scrollTop) +"px";
	var width=Math.max(document.body.scrollWidth,document.documentElement.clientWidth) +"px";
	var height=Math.max(document.body.scrollHeight,document.documentElement.clientHeight)+"px";
	//alert("MsgBox:"+left+","+top+","+width+","+height);
	BiSys_PopDiv.style.left=left;
	BiSys_PopDiv.style.top=top
	BiSys_BackDiv.style.width=width;
	BiSys_BackDiv.style.height=height;
};

var BiSys_GetCookie=function(name){
	var search=name+"=";
	var offset=document.cookie.indexOf(search);
	if (offset != -1) {
		offset += search.length;
		var end=document.cookie.indexOf(";", offset);
		if (end == -1){
			end=document.cookie.length;
		}
		return decodeURIComponent(document.cookie.substring(offset, end));
	}else {
		return "";
	}
} 

var BiSys_SetCookie=function(name,value,hours,domain){
	if(arguments.length > 3){
		var expireDate=new Date(new Date().getTime()+hours*3600000);		
		document.cookie=name+"="+encodeURIComponent(value)+"; path=/; domain="+domain+"; expires="+expireDate.toGMTString();
	}
	if(arguments.length>2){
		var expireDate=new Date(new Date().getTime()+hours*3600000);		
		document.cookie=name+"="+encodeURIComponent(value)+"; path=/; expires="+expireDate.toGMTString();
	}else{
		document.cookie=name+"="+encodeURIComponent(value)+"; path=/"; 
	}
}