﻿
var SIGN_IN_PLACEHOLDER = "fstGetSignInBox";
var SIGN_IN_FORM_ID = "fstSignInForm";
var SIGN_IN_BOX_ID = "fstSignInBox";
var SIGN_IN_LOADER_ID = "fstSignInLoader";
var SIGN_IN_STATUS = "fstSignInStatus";
var UN_ID = "fstUN";
var PW_ID = "fstPW";
var _doingSignIn = false;

/*---------------------------------------------------------------
name        : 
description : 
----------------------------------------------------------------- */
function fst_GetSignInBox()
{
    if($(SIGN_IN_PLACEHOLDER))
    {        
        new Ajax.Request(URL_GETSIGNINBOX,
        {
          method: 'post',
          onSuccess: function(transport)
            {
	            fst_GetSignInBoxSuccess(transport.responseText);
            },
          onFailure: function()
            {
                fst_GetSignInBoxError("unable to retrieve sign in box");
            }
        });
    }
}

/*---------------------------------------------------------------
name        : 
description : 
----------------------------------------------------------------- */
function fst_GetSignInBoxSuccess(retVal)
{
    if(retVal.substring(0,5) == "error")
    {
        fst_GetSignInBoxError(retVal);
        return;
    }
    
    if($(SIGN_IN_PLACEHOLDER))
    {        
        $(SIGN_IN_PLACEHOLDER).innerHTML = retVal;
        
        if($(SIGN_IN_FORM_ID))
        {
            Event.observe(SIGN_IN_FORM_ID, 'submit', fst_DoSignIn);
        }
        else
        {
            fst_ShowSignInStatus();
        }
    }
}

/*---------------------------------------------------------------
name        : 
description : 
----------------------------------------------------------------- */
function fst_GetSignInBoxError(err)
{
    if($(SIGN_IN_PLACEHOLDER))
    {
        $(SIGN_IN_PLACEHOLDER).innerHTML = err;
    }
}

/*---------------------------------------------------------------
name        : 
description : 
----------------------------------------------------------------- */
function fst_DoSignIn(evt)
{
    Event.stop(evt);
    
    if(_doingSignIn)
    {
        alert('sign in being processed, please wait');
        return;
    }

    // do some validations here
    
    // now try and perform the sign in
    var allNodes = Form.serialize(SIGN_IN_FORM_ID);
        
    if(allNodes)   
    {
        _doingSignIn = true;
        fst_HideSignInBox();
        fst_ShowSignInProcessLoader();
        
        new Ajax.Request(URL_PROCESSSIGNIN,
        {
          method: 'post',
          parameters: allNodes,
          onSuccess: function(transport)
            {
	            fst_SignInSuccess(transport.responseText);
            },
          onFailure: function()
            {
                fst_SignInError("error during sign in");
            }
        });
        
    }
}

function fst_ShowSignInBox()
{
    if($(SIGN_IN_BOX_ID))
    {
        $(SIGN_IN_BOX_ID).style.display = 'block';
    }    
}

function fst_HideSignInBox()
{
    if($(SIGN_IN_BOX_ID))
    {
        $(SIGN_IN_BOX_ID).style.display = 'none';
    }
}

function fst_ShowSignInProcessLoader()
{
    if($(SIGN_IN_LOADER_ID))
    {
        $(SIGN_IN_LOADER_ID).style.display = 'block';
    }    
}

function fst_HideSignInProcessLoader()
{
    if($(SIGN_IN_LOADER_ID))
    {
        $(SIGN_IN_LOADER_ID).style.display = 'none';
    }
}

function fst_ShowSignInStatusWithMsg(msg)
{
    if($(SIGN_IN_STATUS))
    {
        $(SIGN_IN_STATUS).style.display = 'block';
        $(SIGN_IN_STATUS).innerHTML = msg;
    }    
}

function fst_ShowSignInStatus()
{
    if($(SIGN_IN_STATUS))
    {
        $(SIGN_IN_STATUS).style.display = 'block';
    }    
}

function fst_HideSignInStatus()
{
    if($(SIGN_IN_STATUS))
    {
        $(SIGN_IN_STATUS).style.display = 'none';
        $(SIGN_IN_STATUS).innerHTML = "";
    }
}

function fst_SignInSuccess(retVal)
{
    if(retVal.substring(0,5) == "error")
    {
        _doingSignIn = false;
        fst_HideSignInProcessLoader();
        fst_ShowSignInStatusWithMsg(retVal);
        fst_ShowSignInBox();
    }
    else
    {
        _doingSignIn = false;
        fst_RefreshPage();
    }
}

function fst_SignInError(retVal)
{
    _doingSignIn = false;
    fst_HideSignInProcessLoader();
    fst_ShowSignInStatusWithMsg(retVal);
    fst_ShowSignInBox();
}


if($(SIGN_IN_PLACEHOLDER))
{
    fst_GetSignInBox();
}

