﻿function getRadPageClientBounds() {
    /// <summary>
    /// Gets the width and height of the browser client window (excluding scrollbars)
    /// </summary>
    /// <returns type="Sys.UI.Bounds">
    /// Browser's client width and height
    /// </returns>

    var clientWidth;
    var clientHeight;
    switch (Sys.Browser.agent) {
        case Sys.Browser.InternetExplorer:
            if (document.documentElement && document.documentElement.clientWidth)
                clientWidth = document.documentElement.clientWidth;
            else if (document.body)
                clientWidth = document.body.clientWidth;
            //clientWidth = document.documentElement.clientWidth;
            if (document.documentElement && document.documentElement.clientHeight)
                clientHeight = document.documentElement.clientHeight;
            else if (document.body)
                clientHeight = document.body.clientHeight;
            //clientHeight = document.documentElement.clientHeight;                
            break;
        case Sys.Browser.Safari:
            clientWidth = window.innerWidth;
            clientHeight = window.innerHeight;
            break;
        case Sys.Browser.Opera:
            clientWidth = Math.min(window.innerWidth, document.body.clientWidth);
            clientHeight = Math.min(window.innerHeight, document.body.clientHeight);
            break;
        default:  // Sys.Browser.Firefox, etc.
            clientWidth = Math.min(window.innerWidth, document.documentElement.clientWidth);
            clientHeight = Math.min(window.innerHeight, document.documentElement.clientHeight);
            break;
    }
    return new Sys.UI.Bounds(0, 0, clientWidth, clientHeight);
}