//RRK 09-22-2006 open normal window
function OpenExternalWindow (URL, ObjectID, Features)
{
    //RRK 11/20/2006 attempt to make parameters easier
    if (typeof Features == "object" && Features.constructor == Array)
    {
        var CookieDictionary = new Object();
        //var CookieWorkingSet = Features.split("]");
        //for (var Counter = 0; Counter < CookieWorkingSet.length - 1; Counter++)
        //{
        //    CookieDictionary[CookieWorkingSet[Counter].split("[")[0]] = CookieWorkingSet[Counter].split("[")[1];
        //}
        for (var Counter = 0; Counter < Features.length; Counter += 2)
        {
            CookieDictionary[Features[Counter]] = Features[Counter + 1];
        }
        CookieDictionary["FileMenu"] = (CookieDictionary["FileMenu"] == null ? "no" : CookieDictionary["FileMenu"]);
        CookieDictionary["ToolIcons"] = (CookieDictionary["ToolIcons"] == null ? "no" : CookieDictionary["ToolIcons"]);
        CookieDictionary["Location"] = (CookieDictionary["Location"] == null ? "no" : CookieDictionary["Location"]);
        CookieDictionary["StatusBar"] = (CookieDictionary["StatusBar"] == null ? "yes" : CookieDictionary["StatusBar"]);
        CookieDictionary["Position"] = (CookieDictionary["Position"] == null ? "center" : CookieDictionary["Position"]);
        CookieDictionary["ViewSize"] = (CookieDictionary["ViewSize"] == null ? "full" : CookieDictionary["ViewSize"]);
        CookieDictionary["Resizable"] = (CookieDictionary["Resizable"] == null ? "yes" : CookieDictionary["Resizable"]);
        CookieDictionary["Scrolling"] = (CookieDictionary["Scrolling"] == null ? "yes" : CookieDictionary["Scrolling"]);
        Features = "menubar=" + CookieDictionary["FileMenu"] + ",toolbar=" + CookieDictionary["ToolIcons"] + ",location=" + CookieDictionary["Location"] + ",status=" + CookieDictionary["StatusBar"] + ",resizable=" + CookieDictionary["Resizable"] + ",scrollbars=" + CookieDictionary["Scrolling"];
        var ScreenInformation = new Array(0,0,0,0); //xywh
        if (CookieDictionary["ViewSize"] == "full" || CookieDictionary["ViewSize"] == "100%")
        {
            ScreenInformation[0] = 0;
            ScreenInformation[1] = 0;
            ScreenInformation[2] = window.screen.availWidth;
            ScreenInformation[3] = window.screen.availHeight;
        }
        else
        {
            //rrk 08/07/2007
            switch (CookieDictionary["ViewSize"])
            {
                case "half":
                case "1/2":
                case "50%":
                {
                    CookieDictionary["ViewSize"] = (window.screen.availWidth / 2) + "x" + (window.screen.availHeight / 2);
                }
                break;
                case "quarter":
                case "1/4":
                case "25%":
                {
                    CookieDictionary["ViewSize"] = (window.screen.availWidth / 4) + "x" + (window.screen.availHeight / 4);
                }
                break;
                default:
                {
                    //rrk 10/12/2007 more options
                    var Temporary = CookieDictionary["ViewSize"];
                    try
                    {
                        var AttemptWorked = false;
                        if (AttemptWorked == false && CookieDictionary["ViewSize"].indexOf("%") >= 0)
                        {
                            var Terms = CookieDictionary["ViewSize"].split("%");
                            switch (Terms.length)
                            {
                                case 2:
                                {
                                    if (IsInteger(Terms[0]) && Terms[1].length == 0)
                                    {
                                        CookieDictionary["ViewSize"] = parseInt(window.screen.availWidth * (parseInt(Terms[0]) / 100), 10) + "x" + parseInt(window.screen.availHeight * (parseInt(Terms[0]) / 100), 10)
                                        AttemptWorked = true;
                                    }
                                }
                                break;
                                case 3:
                                {
                                    if (IsInteger(Terms[0]) && IsInteger(Terms[1]) && Terms[2].length == 0)
                                    {
                                        CookieDictionary["ViewSize"] = parseInt(window.screen.availWidth * (parseInt(Terms[0]) / 100), 10) + "x" + parseInt(window.screen.availHeight * (parseInt(Terms[1]) / 100), 10)
                                        AttemptWorked = true;
                                    }
                                
                                }
                                break;
                            }
                        }
                        if (AttemptWorked == false)
                        {
                            CookieDictionary["ViewSize"] = Temporary;
                        }
                    }
                    catch (Exceptor)
                    {
                        CookieDictionary["ViewSize"] = Temporary;
                    }
                    //rrk 10/12/2007 more options
                }
                break;
            }
            //rrk 08/07/2007
            ScreenInformation[2] = CookieDictionary["ViewSize"].split("x")[0];
            ScreenInformation[3] = CookieDictionary["ViewSize"].split("x")[1];
            switch (CookieDictionary["Position"].toLowerCase())
            {
                case "center":
                {
                    ScreenInformation[0] = ((window.screen.availWidth - CookieDictionary["ViewSize"].split("x")[0]) / 2);
                    ScreenInformation[1] = ((window.screen.availHeight - CookieDictionary["ViewSize"].split("x")[1]) / 2);
                }
                break;
                case "topleft":
                {
                    ScreenInformation[0] = 0;
                    ScreenInformation[1] = 0;
                }
                break;
                case "topcenter":
                {
                    ScreenInformation[0] = ((window.screen.availWidth - CookieDictionary["ViewSize"].split("x")[0]) / 2);
                    ScreenInformation[1] = 0;
                }
                break;
                case "topright":
                {
                    ScreenInformation[0] = (window.screen.availWidth - CookieDictionary["ViewSize"].split("x")[0]);
                    ScreenInformation[1] = 0;
                }
                break;
                case "rightcenter":
                {
                    ScreenInformation[0] = (window.screen.availWidth - CookieDictionary["ViewSize"].split("x")[0]);
                    ScreenInformation[1] = ((window.screen.availHeight - CookieDictionary["ViewSize"].split("x")[1]) / 2);
                }
                break;
                case "bottomright":
                {
                    ScreenInformation[0] = (window.screen.availWidth - CookieDictionary["ViewSize"].split("x")[0]);
                    ScreenInformation[1] = (window.screen.availHeight - CookieDictionary["ViewSize"].split("x")[1]);
                }
                break;
                case "bottomcenter":
                {
                    ScreenInformation[0] = ((window.screen.availWidth - CookieDictionary["ViewSize"].split("x")[0]) / 2);
                    ScreenInformation[1] = (window.screen.availHeight - CookieDictionary["ViewSize"].split("x")[1]);
                }
                break;
                case "bottomleft":
                {
                    ScreenInformation[0] = 0;
                    ScreenInformation[1] = (window.screen.availHeight - CookieDictionary["ViewSize"].split("x")[1]);
                }
                break;
                case "leftcenter":
                {
                    ScreenInformation[0] = 0;
                    ScreenInformation[1] = ((window.screen.availHeight - CookieDictionary["ViewSize"].split("x")[1]) / 2);
                }
                break;
                default:
                {
                    ScreenInformation[0] = CookieDictionary["ViewSize"].split(",")[0];
                    ScreenInformation[1] = CookieDictionary["ViewSize"].split(",")[1];
                }
                break;
            }
        }
        Features += ",top=" + ScreenInformation[1] + ",left=" + ScreenInformation[0] + ",height=" + ScreenInformation[3] + ",width=" + ScreenInformation[2];
        var Window = window.open(URL, (ObjectID == null ? "" : ObjectID), Features);
        try
        {
            Window.moveTo(ScreenInformation[0], ScreenInformation[1]);
            Window.resizeTo(ScreenInformation[2], ScreenInformation[3]);
        }
        catch (Failure)
        {
            //window.alert(Failure);
        }
        return Window;
    }
    else
    {
        return window.open(URL, (ObjectID == null ? "" : ObjectID), (Features == null ? "toolbar=yes,location=no,directories=no,scrollbars=yes,menubar=yes,top=0,left=0,resizable=yes,height=" + window.screen.availHeight + ",width=" + window.screen.availWidth : Features));
    }
}
//RRK 09-22-2006 open dialog window
function OpenInternalWindow (URL, ObjectID, Features)
{
    //RRK 06/08/2006 attempt to make parameters easier
    if (typeof Features == "object" && Features.constructor == Array)
    {
        var OnFailure = Features;
        var CookieDictionary = new Object();
        //var CookieWorkingSet = Features.split("]");
        //for (var Counter = 0; Counter < CookieWorkingSet.length - 1; Counter++)
        //{
        //    CookieDictionary[CookieWorkingSet[Counter].split("[")[0]] = CookieWorkingSet[Counter].split("[")[1];
        //}
        for (var Counter = 0; Counter < Features.length; Counter += 2)
        {
            CookieDictionary[Features[Counter]] = Features[Counter + 1];
        }
        CookieDictionary["StatusBar"] = (CookieDictionary["StatusBar"] == null ? "yes" : CookieDictionary["StatusBar"]);
        CookieDictionary["Position"] = (CookieDictionary["Position"] == null ? "center" : CookieDictionary["Position"]);
        CookieDictionary["ViewSize"] = (CookieDictionary["ViewSize"] == null ? "full" : CookieDictionary["ViewSize"]);
        CookieDictionary["Resizable"] = (CookieDictionary["Resizable"] == null ? "yes" : CookieDictionary["Resizable"]);
        CookieDictionary["Scrolling"] = (CookieDictionary["Scrolling"] == null ? "yes" : CookieDictionary["Scrolling"]);
        Features = "status:" + CookieDictionary["StatusBar"] + ";resizable:" + CookieDictionary["Resizable"] + ";scroll:" + CookieDictionary["Scrolling"];
        var ScreenInformation = new Array(0,0,0,0); //xywh
        if (CookieDictionary["ViewSize"] == "full")
        {
            ScreenInformation[0] = 0;
            ScreenInformation[1] = 0;
            ScreenInformation[2] = window.screen.availWidth;
            ScreenInformation[3] = window.screen.availHeight;
        }
        else
        {
            //rrk 12/12/2007
            switch (CookieDictionary["ViewSize"])
            {
                case "half":
                case "1/2":
                case "50%":
                {
                    CookieDictionary["ViewSize"] = (window.screen.availWidth / 2) + "x" + (window.screen.availHeight / 2);
                }
                break;
                case "quarter":
                case "1/4":
                case "25%":
                {
                    CookieDictionary["ViewSize"] = (window.screen.availWidth / 4) + "x" + (window.screen.availHeight / 4);
                }
                break;
                default:
                {
                    var Temporary = CookieDictionary["ViewSize"];
                    try
                    {
                        var AttemptWorked = false;
                        if (AttemptWorked == false && CookieDictionary["ViewSize"].indexOf("%") >= 0)
                        {
                            var Terms = CookieDictionary["ViewSize"].split("%");
                            switch (Terms.length)
                            {
                                case 2:
                                {
                                    if (IsInteger(Terms[0]) && Terms[1].length == 0)
                                    {
                                        CookieDictionary["ViewSize"] = parseInt(window.screen.availWidth * (parseInt(Terms[0]) / 100), 10) + "x" + parseInt(window.screen.availHeight * (parseInt(Terms[0]) / 100), 10)
                                        AttemptWorked = true;
                                    }
                                }
                                break;
                                case 3:
                                {
                                    if (IsInteger(Terms[0]) && IsInteger(Terms[1]) && Terms[2].length == 0)
                                    {
                                        CookieDictionary["ViewSize"] = parseInt(window.screen.availWidth * (parseInt(Terms[0]) / 100), 10) + "x" + parseInt(window.screen.availHeight * (parseInt(Terms[1]) / 100), 10)
                                        AttemptWorked = true;
                                    }
                                
                                }
                                break;
                            }
                        }
                        if (AttemptWorked == false)
                        {
                            CookieDictionary["ViewSize"] = Temporary;
                        }
                    }
                    catch (Exceptor)
                    {
                        CookieDictionary["ViewSize"] = Temporary;
                    }
                }
                break;
            }
            //rrk 12/12/2007
            ScreenInformation[2] = CookieDictionary["ViewSize"].split("x")[0];
            ScreenInformation[3] = CookieDictionary["ViewSize"].split("x")[1];
            switch (CookieDictionary["Position"].toLowerCase())
            {
                case "center":
                {
                    ScreenInformation[0] = ((window.screen.availWidth - CookieDictionary["ViewSize"].split("x")[0]) / 2);
                    ScreenInformation[1] = ((window.screen.availHeight - CookieDictionary["ViewSize"].split("x")[1]) / 2);
                }
                break;
                case "topleft":
                {
                    ScreenInformation[0] = 0;
                    ScreenInformation[1] = 0;
                }
                break;
                case "topcenter":
                {
                    ScreenInformation[0] = ((window.screen.availWidth - CookieDictionary["ViewSize"].split("x")[0]) / 2);
                    ScreenInformation[1] = 0;
                }
                break;
                case "topright":
                {
                    ScreenInformation[0] = (window.screen.availWidth - CookieDictionary["ViewSize"].split("x")[0]);
                    ScreenInformation[1] = 0;
                }
                break;
                case "rightcenter":
                {
                    ScreenInformation[0] = (window.screen.availWidth - CookieDictionary["ViewSize"].split("x")[0]);
                    ScreenInformation[1] = ((window.screen.availHeight - CookieDictionary["ViewSize"].split("x")[1]) / 2);
                }
                break;
                case "bottomright":
                {
                    ScreenInformation[0] = (window.screen.availWidth - CookieDictionary["ViewSize"].split("x")[0]);
                    ScreenInformation[1] = (window.screen.availHeight - CookieDictionary["ViewSize"].split("x")[1]);
                }
                break;
                case "bottomcenter":
                {
                    ScreenInformation[0] = ((window.screen.availWidth - CookieDictionary["ViewSize"].split("x")[0]) / 2);
                    ScreenInformation[1] = (window.screen.availHeight - CookieDictionary["ViewSize"].split("x")[1]);
                }
                break;
                case "bottomleft":
                {
                    ScreenInformation[0] = 0;
                    ScreenInformation[1] = (window.screen.availHeight - CookieDictionary["ViewSize"].split("x")[1]);
                }
                break;
                case "leftcenter":
                {
                    ScreenInformation[0] = 0;
                    ScreenInformation[1] = ((window.screen.availHeight - CookieDictionary["ViewSize"].split("x")[1]) / 2);
                }
                break;
                default:
                {
                    ScreenInformation[0] = CookieDictionary["ViewSize"].split(",")[0];
                    ScreenInformation[1] = CookieDictionary["ViewSize"].split(",")[1];
                }
                break;
            }
        }
        Features += ";dialogTop:" + ScreenInformation[1] + ";dialogLeft:" + ScreenInformation[0] + ";dialogHeight:" + ScreenInformation[3] + "px;dialogWidth=" + ScreenInformation[2] + "px;";
        try
        {
            if (!window.showModalDialog)
            {
                //RRK 06-17-2008 do NOT screw with this EVER
                window.DIALOG = window.open(URL, (ObjectID == null ? "" : ObjectID), "menubar=" + CookieDictionary["FileMenu"] + ",toolbar=" + CookieDictionary["ToolIcons"] + ",location=" + CookieDictionary["Location"] + ",status=" + CookieDictionary["StatusBar"] + ",resizable=" + CookieDictionary["Resizable"] + ",scrollbars=" + CookieDictionary["Scrolling"] + ",top=" + ScreenInformation[1] + ",left=" + ScreenInformation[0] + ",height=" + ScreenInformation[3] + ",width=" + ScreenInformation[2] + ",modal=1");
                window.STEAL = function ()
                {
                    try{
                        if(window.DIALOG!=null&&window.DIALOG.closed==false){window.DIALOG.focus();}
                        else{window.removeEventListener("focus",window.STEAL,false);window.STEAL=null;window.DIALOG=null;}
                    }catch(exceptor){}
                }
                window.addEventListener("focus", window.STEAL, false);
                return window.DIALOG;
            }
            else
            {
            return window.showModalDialog(URL, (ObjectID == null ? window : ObjectID), Features);
            }
        }
        catch (Failure)
        {
            return OpenExternalWindow(URL, null, OnFailure);
        }
    }
    else
    {
        return window.open(URL, (ObjectID == null ? "" : ObjectID), (Features == null ? "toolbar=yes,location=no,directories=no,scrollbars=yes,menubar=yes,top=0,left=0,resizable=yes,height=" + window.screen.availHeight + ",width=" + window.screen.availWidth : Features));
    }
}