﻿/* Author: N/A (client) */

function VGIXmlButton_GetState(ClientId)
{
    var Node = document.getElementById(ClientId);
    if(Node)
        return(Node.getAttribute("State"));
}

// Private functions

function _VGIXmlButtonOnClick(ClientId, ServerId)
{
//    _VGIXmlButtonChangeState(ClientId, "ON");
    _VGIXmlButton_RaiseEvent("OnClick", ClientId, ServerId);
}
function _VGIXmlButtonOnMouseOver(ClientId, ServerId)
{
    if(VGIXmlButton_GetState(ClientId) != "ON")
      _VGIXmlButtonChangeState(ClientId, "OVER");
    _VGIXmlButton_RaiseEvent("OnMouseOver", ClientId, ServerId);
}
function _VGIXmlButtonOnMouseOut(ClientId, ServerId)
{
    if(VGIXmlButton_GetState(ClientId) != "ON")
      _VGIXmlButtonChangeState(ClientId, "OFF");
    _VGIXmlButton_RaiseEvent("OnMouseOut", ClientId, ServerId);  
}
function _VGIXmlButtonChangeState(ClientId, NewState)
{
    var Node = document.getElementById(ClientId);
    if(Node != null)
    {   
        var Navigator = new VGINavigator();

        var className = Navigator.GetCssClass(Node);

        var NewClassName = null;
         
        if(className != null)   
        {    
            NewClassName = VGIReplaceAtEnd(className, "OVER", NewState);
            if(NewClassName == null)
            {
                NewClassName = VGIReplaceAtEnd(className, "OFF", NewState);
                if(NewClassName == null)
                {
                    NewClassName = VGIReplaceAtEnd(className, "ON", NewState);
                }
            }
        }
        if(NewClassName != null)      
            Node.className = NewClassName;

        if(NewState == "OVER")
            Navigator.SetCursor(Node, "Hand");
        else
            Navigator.SetCursor(Node, "Pointer");
    }
}
function _VGIXmlButton_RaiseEvent(Event, ClientId, ServerId)
{
    var Handler = null;
    var Node = document.getElementById(ClientId);
    if(Node)
        Handler = Node.getAttribute("Handler");
          
    if(Handler != null)
        eval(Handler+"."+Event+"(\""+ClientId+"\",\""+ServerId+"\");");    
}  
/* Log: N/A (client) */