﻿// JScript File
var key;
var message = '';
var node = null;

function AJAXLogin(id, userid, password , challenge , challengeValue , encValue , LoginURL, msgControl , msg, btn, MainURL)
{   
    this.id = id;
    this.userid= userid;
    this.password = password;
    this.challenge= challenge;
    this.challengeValue= challengeValue;
    this.encValue= encValue;
    this.LoginURL = LoginURL;
    this.msg = msg;
    this.msgControl = msgControl;
    this.btn = btn;
    this.MainURL = MainURL;
    this.ResponseBack = new YAHOO.util.CustomEvent("ClientLogindResponseBack", this); 
}

AJAXLogin.prototype.SetMessage = function (id) 
{
    var MyMessageProps = new AJAXMessageProps();
    var MyAJAXMessage = new AJAXMessage(id, MyMessageProps.ImgWait ,MyMessageProps.ImgOk, MyMessageProps.ImgNok, MyMessageProps.CSSImgWait, MyMessageProps.CSSImgOk, MyMessageProps.CSSImgNok, MyMessageProps.AJAXMessagePosImg, MyMessageProps.AJAXMessagePosMsg, MyMessageProps.Message, MyMessageProps.MessageOk ,MyMessageProps.MessageNOk , "False" , this, false);
    MyAJAXMessage.AJAXMessageinitOut();
    return MyAJAXMessage;
}

AJAXLogin.prototype.ShowWaitMessage = function () 
{
    Disable(this.btn);
    if (! (document.getElementById(this.msgControl).innerHTML == ""))
    {
        var element = document.getElementById(this.msgControl);
        while (element.firstChild) 
        {
            element.removeChild(element.firstChild);
        }
    }
    MyAJAXMessage = this.SetMessage('AJAXMessage' + this.id);
    this.AJAXMessage = 'AJAXMessage' + this.id;
    document.getElementById(this.msgControl).appendChild(document.getElementById('AJAXMessage' + this.id));   
    MyAJAXMessage.InitEvents(this);
}

AJAXLogin.prototype.ValidateLogin = function (challenge, encvalue)
{   
    var GetParams = '';   
    GetParams = this.encValue + "=" + encvalue + "&";
    //GetParams += this.challenge+ "=" + document.form1.challenge.value;
    //GetParams += this.challenge+ "=" + challenge;
    GetParams += this.challenge+ "=" + this.challengeValue ;
    var outer = this;
    this.returnedCallback = 
    {
        success: function(t) 
        {
            outer.completeLogin(t);
        },
        failure: function(t) 
        {
            outer.ShowCallBackError(t);
        }
    }
    //YAHOO.util.Connect.setDefaultPostHeader(false);
    //YAHOO.util.Connect.initHeader("Content-Type", "text/xml; charset=utf-8"); 
    this.getXML = YAHOO.util.Connect.asyncRequest("GET",this.LoginURL + "?" + GetParams,this.returnedCallback); 
}

AJAXLogin.prototype.ValidateClientLogin = function ()
{   
    if ((document.getElementById(this.userid).value == "") || (document.getElementById(this.password).value == "" ))
        {
            return false
        }
        else
        {
            return true
        }       
}

AJAXLogin.prototype.ShowErrorMsg = function ()
{   
    Disable(this.btn);
    MyAJAXMessage = this.SetMessage('AJAXMessage' + this.id);
    this.AJAXMessage = 'AJAXMessage' + this.id;
    if (! (document.getElementById(this.msgControl).innerHTML == ""))
    {
        var element = document.getElementById(this.msgControl);
        while (element.firstChild) 
        {
            element.removeChild(element.firstChild);
        }
    }
    document.getElementById(this.msgControl).appendChild(document.getElementById('AJAXMessage' + this.id));   
    MyAJAXMessage.InitEvents(this);
    this.ResponseBack.fire(this.msg,MyAJAXMessage.ImgNok);  
    FadeMessage(this.AJAXMessage, "True", 5);
    FadeEnable(this.btn, 6)
}

AJAXLogin.prototype.completeLogin = function (response)	
{       
    var x = response.responseXML.getElementsByTagName("ajax-response")
    var success = false;
    var error = -1;
    message = '';
    for(var i = 0;i < x.length; i++)
        {
            successcol = x[i].getElementsByTagName("Success")
            errorcol = x[i].getElementsByTagName("Error")
            messagecol = x[i].getElementsByTagName("Message")
            try
                {
                    var textValue; 
	                var optionItem;
	                //Add new states list to the state combo box.
	                for (var count = 0; count < successcol.length; count++)
	                    {
   		                    success = GetInnerText(successcol[count]);
                        } 
	                for (var count = 0; count < errorcol.length; count++)
	                    {
   		                    error = GetInnerText(errorcol[count]);
                        } 
	                for (var count = 0; count < messagecol.length; count++)
	                    {
   		                    message = GetInnerText(messagecol[count]);
                        } 
                } 
            catch(er)
                {
                }        
        }
        if (success == "False")
            {
                this.ResponseBack.fire(message,MyAJAXMessage.ImgOk);  
                FadeMessage(this.AJAXMessage, "True", 5);
                FadeEnable(this.btn, 6)
                //setTimeout('clearMsg(' + "'" + 'AJAXMessage' + this.id + "'" + ')', 6000 );           
            }
            else
            {
                window.location = this.MainURL;
            }
}

AJAXLogin.prototype.ShowCallBackError = function (t)	
{   
    this.ResponseBack.fire(message,MyAJAXMessage.ImgOk);  
    FadeMessage(this.AJAXMessage, "True", 5);
    FadeEnable(this.btn, 6)
    //setTimeout('clearMsg(' + "'" + 'AJAXMessage' + this.id + "'" + ')', 6000 );           
}

function GetInnerText (node)
{
    if (typeof (node.textContent || node.innerText || node.text) != 'undefined'  )
	    return (node.textContent || node.innerText || node.text) 
	else
        return ''
}

