function BrowserVersion()
{     
    this.isIE = false;
    this.isIE7 = false;
    this.isOpera = false;
    this.isMozilla = false;
    this.isSafari = false;
    this.isKonq = false;
    this.version = -1;
	
    function checkBrowserVersion(versionObject)
    {
        versionObject.version = parseFloat(navigator.appVersion);
        sUserAgent = navigator.userAgent;
        versionObject.isOpera = 
            sUserAgent.indexOf("Opera") > -1;
        versionObject.isIE = 
            sUserAgent.indexOf("compatible") > -1 &&
            sUserAgent.indexOf("MSIE") > -1 &&
            !versionObject.isOpera;
        versionObject.isKHTML = 
            sUserAgent.indexOf("KHTML") > -1 &&
            sUserAgent.indexOf("Konqueror") > -1 &&
            sUserAgent.indexOf("AppleWebKit") > -1;
        if (versionObject.isKHTML)
        {
            versionObject.isSafari = 
                sUserAgent.indexOf("AppleWebKit") > -1;
            versionObject.isKonq = 
                sUserAgent.indexOf("Konqueror") > -1;
        }
        versionObject.isMozilla = 
            sUserAgent.indexOf("Gecko") > -1 &&
            !versionObject.isKHTML;
        if (window.XMLHttpRequest)
        {
            versionObject.isIE7 = true;
        }
        else
        {
            versionObject.isIE7 = false;
        }    
        //versionObject.isIE7 = (versionObject.isIE && (versionObject.version > 6));
    };
    
    checkBrowserVersion(this);    
}

var browserVersion = new BrowserVersion();

function OpenDialogWindow(dialogUrl, dialogWidth, dialogHeight,
    saveResultFunction, saveResultFunctionAsString) 
{
    if (browserVersion.isMozilla)
    {
        var url = dialogUrl;
        //Send the callback function name as a querystring parameter.        
        if (saveResultFunctionAsString && (saveResultFunctionAsString != ''))
        {
            url = dialogUrl.strip().match('[a-zA-Z0-9://.]+');
            var params = dialogUrl.replace(url, '');
            params = params.replace(/\?/, '');
            url = url + '?';
            
            if (params != '')
            {
                params += '&';
            }
            
            params += 'saveResultFunc=' + saveResultFunctionAsString;
            
            url += params;
        }
        
        //netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserWrite');
        window.open(url, 'test', 
            'chrome,centerscreen,dependent=yes,dialog=no,modal=yes,' +
            'resizable=yes,scrollbars=yes,location=no,status=no,menubar=no,toolbar=no,' +
            'width='+dialogWidth+'px,height='+dialogHeight+'px');        
    }
    else if (browserVersion.isIE)
    {
        var result = window.showModalDialog(dialogUrl, null, 
            'resizable:yes;scroll:yes;status:no;center:yes;maximize:yes;' +
            'dialogWidth:'+dialogWidth+'px; dialogHeight:'+dialogHeight+'px');
        if (saveResultFunction && result)
        {
            saveResultFunction(result.value, result.type); 
        }
    }
    else
    {
        window.open(dialogUrl, 'test', 
            'chrome,centerscreen,dependent=yes,dialog=yes,modal=yes,' +
            'resizable=yes,scrollbars=no,location=no,status=no,menubar=no,toolbar=no,' +
            'width='+dialogWidth+'px,height='+dialogHeight+'px');        
    }
}

function CloseDialogWindow(saveResultFunction, dialogResult, dialogType) 
{
    if (browserVersion.isMozilla)
    {
        saveResultFunction(dialogResult, dialogType); //opener.SaveFormResult
    }
    else if (browserVersion.isIE)
    {
        var result = new Object();
        result.type = dialogType;
        result.value = dialogResult; 
        window.returnValue = result;
    }
    else 
    {
        if (saveResultFunction)
        {
            saveResultFunction(dialogResult, dialogType); //opener.SaveFormResult
        }
    }
    window.close() 
}
