﻿// JScript File
var crm_login_url = '/skins/realview/goodreading/login.aspx'; // replaces login.asp 
function DoLogin(user,password,request)	
{
    
  var u = user.value?user.value:user;
  var p = password.value?password.value:password;
  if (request == 'login' || request=="POST") 
  {
	
	if ((u.RVtrim()=='') || (p.RVtrim()==''))	
	{
		if (user.value)
		    user.focus();
		ShowLoginError('Please enter a user name and a password')
		return false;
	}	
	var o = new RVhttprequest;
	    // 1st check goodreading crm
        var crmOK = CheckCRMLoginResults(o.dopost(crm_login_url+'?publicationid='+RVKernel.pid+'&user='+u+'&password='+p,'','',true),u,p);
        if(crmOK)
        {
			CheckLoginResults(o.dopost(login_url+'?publicationid='+RVKernel.pid+'&issueid='+RVKernel.iid+'&user='+u+'&password='+p,'','',true),u,p);
		}
  }
  
  else { // send password
  
    if (user.value.RVtrim()=='') {
		user.focus();
		ShowLoginError('Please enter a login name')
		return false;
	}	
	var o = new RVhttprequest;
	
	o.dopost(forgottenpassword_url + '?publicationid='+RVKernel.pid+'&user='+user.value,'',CheckForgottenPwdResults,true);
    
  
  
  }  
};

function DoAutoLogin(user,password)	
{
    // user, pw come from auth_obj...ignore parameters above

	var o = new RVhttprequest;
    // 1st check goodreading crm
    var crmOK = CheckCRMLoginResults(o.dopost(crm_login_url+'?publicationid='+RVKernel.pid+'&user='+auth_obj.u+'&password='+auth_obj.p,'','',true),auth_obj.u,auth_obj.p);
    
    if(crmOK)
    {	
	    o = new RVhttprequest;
	    CheckLoginResults(o.dopost(login_url+'?publicationid='+RVKernel.pid+'&issueid='+RVKernel.iid+'&user='+user+'&password='+password,'','',true),auth_obj.u,auth_obj.p);
    }
};

function CheckCRMLoginResults(res,u,p)	
{

    var retval = false;
    //login panel is still active
    var code = getText(res.responseXML.getElementsByTagName('code')[0]);
    var message = getText(res.responseXML.getElementsByTagName('message')[0]);
    var userid = getText(res.responseXML.getElementsByTagName('userid')[0]);
	if (Number(code)==0) // login ok
	{    
	    retval = true;
	}
	else
	{
	    retval = false;
		ShowLoginError( 'Login Error: ' + message);
	}    
    return retval;
};

function ShowLogout()	{
	GetUserName();
	
	var u = ', ';
	if ( (RVKernel.User.Username=='')	 || (auth_obj.u !=''))
		u='!';
	else
		u+=RVKernel.User.Fullname==''?auth_obj.u:RVKernel.User.Fullname;
  var s='<table width=100%><tr><td align=right><a href="#" onclick="logout()">LOGOUT</a></td></tr></table>';
  var eLyr = getobj('lyrLogout');
    if (!eLyr) {
        eLyr = document.createElement('div');
       eLyr.id='lyrLogout' ;
        }
     eLyr.innerHTML = s;
     getobj('col2content').appendChild(eLyr);
     eLyr.style.display = 'block';
    initInfoLayers();
    ValidGRUser();
};

function ValidGRUser()	{
	u=RVKernel.User.Username;
	var o = new RVhttprequest;
	var crm_validuser_url ='/skins/realview/goodreading/ValidCRMUser.aspx'
	var crmOK = CheckCRMValidResult(o.dopost(crm_validuser_url+'?publicationid='+RVKernel.pid+'&user='+u,'','',true));
    if(!crmOK)
    {
        logout();
    }
};

function CheckCRMValidResult(res)	
{
    var retval = false;
    var code = getText(res.responseXML.getElementsByTagName('status')[0]);
    var message = getText(res.responseXML.getElementsByTagName('message')[0]);

	if (Number(code)==0) // CRM Valid ok
	{    
	    retval = true;
	}
	else
	{
		ShowLoginError( 'Login Error: ' + message);
	}    
    return retval;
};
