﻿var QuickNav = function() {
    return {
        init: function(id) {
            var d = id ? document.getElementById(id) : document;

            var sel = d.getElementsByTagName("div");
            for (var i = 0; i < sel.length; i++) {
                var ds = sel[i];
                if (ds.className == "selectable") {
                    var c = "<fieldset><select id=\"sel_qn_" + i + "\" onchange=\"QuickNav.load(this.options[this.selectedIndex]);\"><option value=\"\">";

                    for (var hi = 1; hi <= 6; hi++) {
                        var h = ds.getElementsByTagName("h" + hi);
                        if (h.length > 0) {
                            c += h[0].innerHTML;
                            break;
                        }
                    }

                    c += "</option>";

                    var lnks = ds.getElementsByTagName("a");
                    for (var j = 0; j < lnks.length; j++) {
                        var lnk = lnks[j];
                        var cn = "";
                        if (lnk.getAttribute("target") && lnk.getAttribute("target").toLowerCase() == "_blank")
                            cn = " class=\"qn_newWin\"";

                        c += "<option value=\"" + lnk.getAttribute("href") + "\"" + cn + ">" + lnk.innerHTML + "</option>\n";
                    }

                    c += "</select></fieldset>";

                    ds.innerHTML = c;
                }
            }

            var f = document.createElement("form");
            f.setAttribute("id", "f_quicklinks");
            f.setAttribute("action", "");
            f.setAttribute("method", "get");
            if (window.addEventListener)
                window.addEventListener("load", function() { document.body.appendChild(f); }, false);
            else if (window.attachEvent)
                window.attachEvent("onload", function() { document.body.appendChild(f); });
        },

        loadPage: function(url, inNewWindow) {
            var n = inNewWindow || false;
            var f = document.getElementById("f_quicklinks");
            if (f) {
                if (-1 != url.indexOf("?")) {
                    //Since the form tag is removing all parameters in the action-URL, when submitted, use hiddens instead!
                    var parameters = url.split("?")[1];
                    var paramArr = parameters.split("&");
                    var hdn, nameValueArr;
                    for (var i = 0; i < paramArr.length; i++) {
                        try {
                            nameValueArr = paramArr[i].split("=");
                            if (2 == nameValueArr.length) {
                                hdn = document.createElement("input");
                                hdn.setAttribute("type", "hidden");
                                hdn.setAttribute("name", nameValueArr[0]);
                                hdn.setAttribute("value", nameValueArr[1]);
                                f.appendChild(hdn);
                            }
                        }
                        catch (nothing) {
                        }
                    }
                }
                f.setAttribute("action", url);
                f.setAttribute("target", n ? "_blank" : "_self");
                f.submit();
            }
            else {
                if (n) {
                    if (window.open(url))
                        return;
                }
                self.location = url;
            }
        },

        load: function(opt) {
            if (!opt)
                return;

            if (opt.value.length > 0)
                this.loadPage(opt.value, (opt.className && opt.className == "qn_newWin"));
        }
    }
} ();
