﻿function ValidateLoginData(prefix,objemail,objpassword)
{
    var result = true; 
    
    if (IsEmpty(objemail))
    {
        //document.getElementById(prefix + 'emailerrormsg').innerHTML = 'Please enter a email.';
        document.getElementById(prefix + 'emailerrormsg').innerHTML = GetStr(1100);
        document.getElementById(prefix + 'emailerrormsg').style.display = "";
        result = false;
    }
    else
    {
        if (!ValidateEmail(objemail))
        {
            //document.getElementById('emailerrormsg').innerHTML = 'Email is required and must contains @';
            //document.getElementById(prefix + 'emailerrormsg').innerHTML = 'Must include @ and .';
            document.getElementById(prefix + 'emailerrormsg').innerHTML = GetStr(1101);
            document.getElementById(prefix + 'emailerrormsg').style.display = "";
            result = false;
        }
    }
    if (IsEmpty(objpassword))
    {
        //document.getElementById(prefix + 'passworderrormsg').innerHTML = 'Please enter a password.';
        document.getElementById(prefix + 'passworderrormsg').innerHTML = GetStr(1102);
        document.getElementById(prefix + 'passworderrormsg').style.display = "";
        result = false;
    }
    else
    {
        if (!ValidatePassword(objpassword))
        {
            //document.getElementById('passworderrormsg').innerHTML = 'the Min length of Password is 4 chars'
            //document.getElementById(prefix + 'passworderrormsg').innerHTML = 'the Min length of Password is 8 chars.';
            document.getElementById(prefix + 'passworderrormsg').innerHTML = GetStr(1103);
            document.getElementById(prefix + 'passworderrormsg').style.display = "";
            result = false;
        }
    }
    return result;
}

function DoLogin(prefix)
{
    SetLoading('regloginsbtn');
    document.getElementById(prefix + 'emailerrormsg').innerHTML = '';
    document.getElementById(prefix + 'emailerrormsg').style.display = 'none';
    
    document.getElementById(prefix + 'passworderrormsg').innerHTML = '';
    document.getElementById(prefix + 'passworderrormsg').style.display = 'none';
    var objemail = document.getElementById('txt' + prefix + 'email');
    var objpassword = document.getElementById('txt' + prefix + 'password');
    if (!ValidateLoginData(prefix,objemail,objpassword))
        return;
     
     createKey('pos');
     var secret_email = encryptedString(key, objemail.value);
     var secret_pwd = encryptedString(key, objpassword.value);
    // cmdEncrypt(objemail.value,objpassword.value);//add by paul.liu data encrypt
    //document.getElementById("Loading").innerHTML = "<center>LOADING...</center>";
    document.getElementById("Loading").innerHTML = GetStr(1000); 
    // hook up a method that gets the response
    
    proxies.ProxyService.CheckCustomer.func = LoginCallback;
    // now call the server
   // var strencrypt = $F('posx');
   // var challenge = $F('txtChallenge');
   proxies.ProxyService.CheckCustomer(secret_pwd,secret_email);
    //proxies.ProxyService.CheckCustomer(strencrypt,challenge);
}

function LoginCallback(response)
{
    document.getElementById("Loading").innerHTML = "";
    UnSetLoading('regloginsbtn');
    //alert(response);
    var result = response;
    
    
    if (result == ResponseCode.UsernameError)
    {
        //alert('UsernameError');
        //document.getElementById('emailerrormsg').innerHTML = 'Wrong email address';
        //document.getElementById('emailerrormsg').style.display = "";
        ShowLoginFailed();
        s_sendPageName("Login:Failure","Login");
        return;
    }
    if (result == ResponseCode.PasswordIsTemporary)
    {
        //alert('PasswordError');
        //document.getElementById('passworderrormsg').innerHTML = 'Wrong password';
        //document.getElementById('passworderrormsg').style.display = "";
        ShowChangePwd();
        s_sendPageName("Login:Failure","Login");
        return;
    }
    if (result == ResponseCode.PasswordError)
    {
        //alert('PasswordError');
        //document.getElementById('passworderrormsg').innerHTML = 'Wrong password';
        //document.getElementById('passworderrormsg').style.display = "";
        ShowLoginFailed();
        s_sendPageName("Login:Failure","Login");
        return;
    }
    if (result == ResponseCode.AccountLocked)
    {
        //alert('Account Locked');
        alert(GetStr(1104));
        s_sendPageName("Login:Failure","Login");
        return;
    }
    if (result == ResponseCode.UnknownError)
    {
        //alert('UnknownError');
        alert(GetStr(1001));
        s_sendPageName("Login:Failure","Login");
        return;
    }
    if (result == ResponseCode.NoUsernameAtSystemID)
    {
        //alert('UnknownError');
        ShowLoginFailed();
        s_sendPageName("Login:Failure","Login");
        //alert(GetStr(1001));
        //s_sendPageName("Login:Failure","Login");
        return;
    }
    if (result == ResponseCode.Succeed || result == ResponseCode.ExpressSuccess)
    {
        try{ShowCheckout(true);} catch(e){}
        try{ RefreshCart(); } catch(e) {}
        try{ RefreshShareVideo();}catch(e){}
        
//        try{
//        if(top.location.pathname=="/")
//          top.location.href="/";
//        }catch(e){}
        
//        try{
//        if(top.location.pathname=="/index.htm")
//          top.location.href="/index.htm";
//        }catch(e){}
        
        try{
        if(top.location.pathname=="/WatchHockey.aspx")
          top.location.href="/WatchHockey.aspx";
        }catch(e){}
        
        try{
        if(top.location.pathname.toLowerCase()=="/filmfestival/submit1.aspx")
          top.location.href="/FilmFestival/Submit1.aspx";
        }catch(e){}
        
        try{
        if(top.location.pathname=="/ExpressVu/Disconnected.aspx")
          top.location.href="/ExpressVu/Disconnected.aspx";
        }catch(e){}
        
        try{
        if(top.location.pathname=="/ExpressVu/LiveTV.aspx")
          top.location.href="/ExpressVu/LiveTV.aspx";
        }catch(e){}
        
        try{
        if(top.location.pathname=="/ExpressVu/NHL.aspx")
          top.location.href="/ExpressVu/NHL.aspx";
        }catch(e){}
        
        try{
        if(top.location.pathname=="/ExpressVu/NHLHighlights.aspx")
          top.location.href="/ExpressVu/NHLHighlights.aspx";
        }catch(e){}
        
        try{
        if(top.location.pathname=="/ExpressVu/Home.aspx")
          top.location.href="/ExpressVu/Home.aspx";
        }catch(e){}
        
        try{
        if(top.location.pathname=="/MyAccount.aspx")
          GetMyAccount();
        }catch(e){}
        
         try{
        if(top.location.pathname=="/MyAccount/MyWallet.aspx")
           GetMyWallet('load');
        }catch(e){}
        
         try{
        if(top.location.pathname=="/Reg.aspx")
            if(proxies.ProxyService.IsCustomerLogged())
              document.getElementById('aRegister').href="/MyAccount/OtherServices.aspx ";
              else
              document.getElementById('aRegister').href="javascript:ShowLoginRegister();";
        }catch(e){}
        
        
        try{
        if(top.location.pathname=="/index.htm" || top.location.pathname=="/")
        {
          if(!proxies.ProxyService.IsExpreessvuLogin())
          {
              document.getElementById('divIsExVu').style.display="none";
              document.getElementById('divNotExVu').style.display="";
              if(proxies.ProxyService.IsCustomerLogged())
                document.getElementById('aRegister').href="/MyAccount/OtherServices.aspx ";
              else
                document.getElementById('aRegister').href="javascript:ShowLoginRegister();";
                
              document.getElementById('imgNhlLogo').href="/ExpressVu/Reg.aspx";
          }
          else
          {
              document.getElementById('divNotExVu').style.display="none";
              document.getElementById('divIsExVu').style.display="";
              
              document.getElementById('imgNhlLogo').href="/ExpressVu/Home.aspx";
              
             
          }
          
             
        }
        }catch(e){}
        
        
        
        
      try{ 
            var objects = document.getElementsByTagName("a");
            var m_cartUrl="#";
           for( var i = 0; i < objects.length; i++)
           {     
             if( objects[i].getAttribute("CartIdUrl") == "CartIdUrlValue" )
              m_cartUrl=objects[i].href;
                       
            if( objects[i].getAttribute("CartIdUrl") == "aCartIdUrl" )
              objects[i].href=m_cartUrl;
              
             else
               continue; 
            }
        } catch(e){}

        //remove the check after the user logs in,only check before shopping cart page (like we have now)
//        if(!proxies.ProxyService.HasDownload(proxies.ProxyService.CurrentCustomerID()))
//            GotoDownloadPage();
//        else       
//            HideLoginRegister();
            
          HideLoginRegister();
          s_sendPageName("Login:Success","Login");
          
          //Jay
        try
        {
            if(isActorsDetail!=null&&isActorsDetail==true)
            {
                //RefreshActorsDetail();//BBM-Widget
                RefreshWidget();
            }
        }
        catch(e){}
        
        try
        {
            if(isCelebrityContest!=null&&isCelebrityContest==true)
            {
                RefreshCelebrityContest();//BBM-Widget
            }
        }
        catch(e){}
        
        
        try
        {
            if(isCelebrityContestB!=null&&isCelebrityContestB==true)
            {
                RefreshCelebrityContestB();//BBM-Widget
            }
        }
        catch(e){}
        
        try
        {
            if(isCelebrityContestC!=null&&isCelebrityContestC==true)
            {
                RefreshCelebrityContestC();//BBM-Widget
            }
        }
        catch(e){}
        
        try
        {
            if(isCelebrityContestD!=null&&isCelebrityContestD==true)
            {
                RefreshCelebrityContestD();//BBM-Widget
            }
        }
        catch(e){
        
        }
        
        try
        {
            if(isDetail!=null&&isDetail==true)//if in MediaDetail.aspx page
            {
                RefreshWidget();//BBM-Widget
            }
        }
        catch(e){
        }
        
        try
        {
            if(isEChatSupportDetail!=null&&isEChatSupportDetail==true)
            {
                RefreshEChatSupport();
            }
        }
        catch(e){
        
        }
        
        try
        {
            if(isChatError!=null&&isChatError==true)
            {
                RefreshChatError();
            }
        }
        catch(e){
        
        }
        
        try
        {
            if(isExpressVuReg!=null&&isExpressVuReg==true)
            {
                window.location.href="/ExpressVu/Home.aspx"
            }
        }
        catch(e){
        
        }
        try
        {
            if(isEnteries!=null&&isEnteries==true)
            {
                window.location.href="/FilmFestival/Entries.aspx"
            }
        }
        catch(e){
        
        }  
        
        try
        {
            if(isFilmFestivalHome!=null&&isFilmFestivalHome==true)
            {
                window.location.href="/FilmFestival/Home.aspx"
            }
        }
        catch(e){
        
        }  
        
//        if(!proxies.ProxyService.HasDevices(proxies.ProxyService.CurrentCustomerID()))
//            setTimeout('ShowDownload()',2000);
        return;
    }    
}


function GotoDownloadPage()
{
    //document.getElementById("Loading").innerHTML = "<center>LOADING...</center>";
    //document.getElementById("Loading").innerHTML = GetStr(1000);
    SetLoading('');

    var ajax = new AJAX( GetAbsoluteUrl("/RegisterComplete.aspx") );
    ajax.SetCallbackFun(GotoDownloadPageCallback);
    
    ajax.Send(null);
}

function GotoDownloadPageCallback(ajax)
{
    //document.getElementById("Loading").innerHTML = "";
    UnSetLoading('');
    
    // Get DOM
    var objDOM = ajax.GetXmlDoc();
      
    setInnerHTML(document.getElementById("RegistrationComplete"),objDOM.selectSingleNode("//xmlRoot/html").text);
    carousel(-1, null, $$('.myVideoPlayPanelOn .regWrapper .carouselBody')[0], 1, -969);
}

// Paul liu
// Refresh shopping cart
function RefreshCart()
{
    if(document.getElementById("tbShoppingCart"))
    {
        GetShoppingCart1('1');
    }
    else
    {
        return;
    }
}
// Paul liu
// Refresh Refresh Share Video
function RefreshShareVideo()
{
    if(document.getElementById(tbLogged))
    {
        document.getElementById(tbLogged).style.display="block";
        document.getElementById(tbNonLogged).style.display="none";
    }
    else
    {
        return;
    }
    return;
}

function ShowLoginFailed()
{
    //document.getElementById("Loading").innerHTML = "<center>LOADING...</center>";
    document.getElementById("Loading").innerHTML = GetStr(1000);
    
    if (document.getElementById("LoginFailed").innerHTML != '')
    {     
        document.getElementById("Loading").innerHTML = '';
        //alert('It appears that there is a problem with the email address and/or password that you provided.');
        alert(GetStr(1105));
        return;
    }
        
    var ajax = new AJAX( GetAbsoluteUrl("/LoginFailed.aspx") );
    ajax.SetCallbackFun(_GetLoginFailedCallback);
    
    // ·¢ËÍÇëÇó
    ajax.Send(null);
}

function _GetLoginFailedCallback(ajax)
{
    document.getElementById("Loading").innerHTML = "";
    
    // »ñÈ¡DOM
    var objDOM = ajax.GetXmlDoc();
    
    //$$('.carouselContainer')[0].innerHTML = objDOM.selectSingleNode("//xmlRoot/html").text;
    
    document.getElementById("LoginFailed").innerHTML = objDOM.selectSingleNode("//xmlRoot/html").text;
    carousel(-1, null, $$('.myVideoPlayPanelOn .regWrapper .carouselBody')[0], 1, -770);
}

function ShowChangePwd()
{
    //document.getElementById("Loading").innerHTML = "<center>LOADING...</center>";
    document.getElementById("Loading").innerHTML = GetStr(1000);
           
    var ajax = new AJAX( GetAbsoluteUrl("/ChangePwd.aspx") );
    ajax.SetCallbackFun(_GetChangePwdCallback);
    
    // ·¢ËÍÇëÇó
    ajax.Send(null);
}

function _GetChangePwdCallback(ajax)
{
    document.getElementById("Loading").innerHTML = "";
    
    // »ñÈ¡DOM
    var objDOM = ajax.GetXmlDoc();
    
    //$$('.carouselContainer')[0].innerHTML = objDOM.selectSingleNode("//xmlRoot/html").text;
    
    document.getElementById("ChangePwd").innerHTML = objDOM.selectSingleNode("//xmlRoot/html").text;
    carousel(-1, null, $$('.myVideoPlayPanelOn .regWrapper .carouselBody')[0], 1, -820);
}

var key;

function createKey(obj)
{
	var keySize = 128;
	setMaxDigits(19);
	var strE = $F(obj + 'x');
	var strN = $F(obj + 'y');
	key = new RSAKeyPair(
		strE,                           //public key
		"",                                //private key (DO keep secret)
		strN //modulo
		);
	key.radix = 16;
}
	
//var key;
//function initKey()
//{
//	setMaxDigits(131);
//	key = new RSAKeyPair($F('txtRSAE'), "", $F('txtRSAM'));
//}

//function cmdEncrypt(objemail,objpassword)
//{
//	initKey();
//	var v_challenge = $F('txtChallenge')+"\\"+base64encode(objemail)+"\\"+base64encode(objpassword);
//	document.getElementById('posx').value = encryptedString(key,v_challenge);
//	document.getElementById('posy').value = "";
//	return;
//}

function base64encode(str) {

	var base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
	var base64DecodeChars = new Array(
	-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
	-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
	-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63,
	52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1,
	-1,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14,
	15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1,
	-1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
	41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1);
	var out, i, len;
	var c1, c2, c3;

	len = str.length;
	i = 0;
	out = "";
	while(i < len) {
	c1 = str.charCodeAt(i++) & 0xff;
	if(i == len)
	{
		out += base64EncodeChars.charAt(c1 >> 2);
		out += base64EncodeChars.charAt((c1 & 0x3) << 4);
		out += "==";
		break;
	}
	c2 = str.charCodeAt(i++);
	if(i == len)
	{
		out += base64EncodeChars.charAt(c1 >> 2);
		out += base64EncodeChars.charAt(((c1 & 0x3)<< 4) | ((c2 & 0xF0) >> 4));
		out += base64EncodeChars.charAt((c2 & 0xF) << 2);
		out += "=";
		break;
	}
	c3 = str.charCodeAt(i++);
	out += base64EncodeChars.charAt(c1 >> 2);
	out += base64EncodeChars.charAt(((c1 & 0x3)<< 4) | ((c2 & 0xF0) >> 4));
	out += base64EncodeChars.charAt(((c2 & 0xF) << 2) | ((c3 & 0xC0) >>6));
	out += base64EncodeChars.charAt(c3 & 0x3F);
	}
	return out;
}
