(function($) {
    var debug = false;

    // Private Methods
    function log(msg) {
        if (window.console && debug) {
            window.console.log(msg);
        }
    }

    // Google Maps
    function initAgentMap(className) {
        // Ist Google Maps geladen?
        if (typeof (google) != "undefined" && typeof (google.maps) != "undefined") {

            var geocoder = new google.maps.Geocoder();

            $(className).each(function() {
                var self = $(this);

                // Hole Vermittlername und Suchabfrage aus dem Div
                var name = self.find(".name").remove().text();
                var query = self.find(".query").remove().text();
                var overlay = self.find(".marker-overlay").remove().html();

                // Aktiviere Karte
                var myOptions = {
                    mapTypeId: google.maps.MapTypeId.ROADMAP,
                    scaleControl: true,
                    navigationControl: true,
                    zoom: 15,
                    center: new google.maps.LatLng(-34.397, 150.644),
                    navigationControlOptions: {
                        style: google.maps.NavigationControlStyle.SMALL
                    }
                };
                var map = new google.maps.Map(this, myOptions);
                var infowindow = new google.maps.InfoWindow();
                geocoder.geocode({ 'address': query }, function(results, status) {
                    if (status == google.maps.GeocoderStatus.OK) {
                        map.setCenter(results[0].geometry.location);
                        var marker = new google.maps.Marker({
                            map: map,
                            position: results[0].geometry.location,
                            title: name
                        });
                        var onclick = function(event) {
                            infowindow.setContent(overlay);
                            infowindow.setPosition(event.latLng);
                            infowindow.open(map, marker);
                        };
                        google.maps.event.addListener(marker, 'click', onclick);
                        onclick({ latLng: results[0].geometry.location });
                    } else {
                        alert("Geocode was not successful for the following reason: " + status);
                    }
                });
            });
        }
    }

    // Schnellzugriff
    function initFastAccess(className) {
        $("select" + className).change(function() {
            var url = this.options[this.selectedIndex].value;
            if (url != "-") {
                window.location = url;
            } else {
                this.selectedIndex = 0;
            }
        });
        log("fastaccess initialisiert");
    }

    // Richtet den Defaulttext bei Suchfeldern ein
    function initSearchfields(className) {
        $(className).each(function() {
            var self = $(this);
            var emptyText = self.val();
            self.addClass('inactive');
            self.focus(function() {
                if (self.val() == emptyText) {
                    self.removeClass('inactive');
                    self.val('');
                }
            });
            self.blur(function() {
                if (self.val() == '') {
                    self.addClass('inactive');
                    self.val(emptyText);
                }
            });
        });
    }

    // Vermittlersuchsnippet
    function initAgentSearch(className) {
        $(className).each(function() {
            var self = $(this);
            var searchField = self.find("input.searchfield");
            var searchUrl = self.find(".targeturl").remove().val();
            if (!searchUrl) {
                searchUrl = "/de/VermittlerSuche.aspx?plz=";
            }
            function submit(event) {
                var url = searchUrl + searchField.val();
                ergoUi.openWin(url, "Vermittlersuche", "");

                return false;
            }

            self.find("input.submit").click(submit);
            searchField.keydown(function(event) {
                if (event.keyCode == '13') {
                    return submit();
                }
            });
        });
    }


    // Suchbox Enter-Taste RN 20100624
    function initCaspardoSearch() {

        function submit(event) {
            var inputField = $('#caspardosubmit');
            var form = document.forms[0];
            form.action = form['caspardo_url'].value;
            form.submit();
            return false;
        }
        var inputField = $('#caspardosearch');
        if (inputField) {
            inputField.keydown(function(event) {
                if (event.keyCode == '13') {
                    return submit();
                }
            });
        }
    }





    // Verschieden Fehlerbehebungen für IE
    function initIEFix() {
        $.each($.browser, function(i, val) {
            if (i == "msie") {
                // Workaround für abgerundete Buttons
                $(".button-red, .button-grey").append("<span></span>");
                // Workaround für first-child Pseudoselektor im IE6
                $("p:first-child, h2:first-child, h1:first-child").addClass("first-child");
            }
        });
    }

    // Checkboxen auf der Vermittler Bearbeitungsseite ("Meine Daten");
    function initAllowChange(cssClass) {
        $(cssClass).each(function() {
            var self = $(this);
            var input = self.parents("tr").find("input[type='text'], select");
            var initialValue = input.val();
            function onChange(event) {
                if (self.is(":checked")) {
                    input.removeAttr("disabled");
                } else {
                    input.attr("disabled", "disabled");
                    input.val(initialValue);
                }
            }
            self.click(onChange);
        });
    }

    // Vermittlerbearbeitungsformular: Felder werden durch Checkbox (de)aktiviert
    function initPreviewAgentTexts() {
        $(".text1 .text1_" + $(".text1 input:checked").val()).show();
        $(".text2 .text2_" + $(".text2 input:checked").val()).show();

        $(".text1 input").change(function() {
            var value = $(".text1 input:checked").val();
            $(".text1 .agentText").slideUp("fast");
            $(".text1_" + value).slideDown("fast");
        });
        $(".text2 input").change(function() {
            var value = $(".text2 input:checked").val();
            $(".text2 .agentText").slideUp("fast");
            $(".text2 .text2_" + value).slideDown("fast");
        });
    }

    // Image Slider
    function initSlider(className, options) {
        // Einstellungen können durch den options Parameter ergänzt oder überschrieben werden
        var defaults = {
            speed: 400,
            easing: 'swing'
        };
        $.extend(defaults, options);

        $(className).each(function() {

            // referenz auf das container div
            var self = $(this);

            // slider div (wird hin und her geschaltet)
            var slider = self.find('.cs_slider');

            // breite des sliders
            var width = self.width();

            // alle 'slides'
            var items = self.find('.cs_item');

            // ist gerade eine animation aktiv?
            var inuse = false;

            // Container für die Buttons
            var buttonsDiv = $("<div></div>").addClass("buttons").appendTo(self);
            var buttons = []; // Array für die Buttons
            var i = 0;
            var activeButton;
            var maxHeight = 0; // speichert die größte Höhe die die Slides erreichen

            items.each(function() {
                var item = $(this).width(width); // setze das Item auf die Breite des Sliders
                maxHeight = item.height() > maxHeight ? item.height() : maxHeight;  // aktualisiere die maximale höhe
                var left = item.position().left; // position des slides innerhalb des sliders

                // erzeuge button für das item und hänge onclick handler an
                var button = $("<a></a>").text(++i).addClass("button").appendTo(buttonsDiv).click(function() {
                    activeButton.fadeTo('fast', 0.6); // fade aktiven button aus
                    activeButton = $(this); // schalte den button aktiv
                    activeButton.fadeTo('fast', 1.0); // fade den button ein

                    // wenn keine andere animation läuft
                    if (inuse === false) {
                        log('slide to : ' + left);
                        inuse = true;
                        // animiere den übergang
                        slider.animate({ 'left': -1 * left + 'px' }, defaults.speed, defaults.easing, function() {
                            inuse = false;
                        });
                    }
                });
                // füge neuen button dem array zu
                buttons.push(button);

                // setze alle buttons außer dem ersten auf inaktiv
                if (i > 1)
                    button.css('opacity', 0.6);

            });
            activeButton = buttons[0];

            // setze die höhe des sliders auf die höhe des größten slides
            self.height(maxHeight);
            log('slider initialisiert');
        });
    }

    // Javascript Controls einblenden die nur mit Javascript sichtbar sein sollen
    function showHiddenElements(className) {
        $(className).show();
        log("js elemente eingeblendet");
    }
    // Macht Boxen auf- und zuklappbar
    function initCollapsableBoxes(className) {
        // Macht jede Box auf/-zuklappbar
        $(className).each(function() {
            var box = $(this);

            var title = box.children("h2, h3");

            var text = title.text();

            var plus = $("<span></span>").addClass("plus").prependTo(title);
            plus.html(box.children(".content:visible").length > 0 ? "&ndash;" : "+");

            title.click(function() {
                // Klappt den Content der Box ein bzw. aus
                box.children(".content").slideToggle("slow");
                plus.html(plus.html() == "+" ? "&ndash;" : "+");
            });
            log('Aufklappbox initialisiert: ' + text);
        });
        log('alle Aufklappboxen intialisiert');
    }

    // Erzeugt CardView
    function initCardView(className) {
        $(className).each(function() {
            var tabs = $(this).addClass('tabs');
            var tabbar = $("<ul></ul>").addClass("bar clearfix");
            var buttons = [];

            tabs.prepend(tabbar);
            tabs.children(".tab").each(function() {

                var tab = $(this).hide();
                var label = tab.children("h2").attr("title");
                if (!label) {
                    label = tab.children("h2").remove().text();
                }
                var button = $("<a></a>").text(label);

                tab.children("h2").removeAttr("title");

                buttons.push(button);
                tabbar.append($("<li></li>").append(button));

                button.click(function() {
                    $(buttons).each(function() { this.removeClass("selected"); this.parent().removeClass("selected"); });
                    button.parent().addClass("selected");
                    button.addClass("selected");
                    tabs.children('.tab').css('display', 'none');
                    tab.css('display', 'block');
                });

            });
            if (buttons.length < 4) {
                tabbar.addClass("medium");
            }
            buttons[0].click();
            log('Cardview initialisiert');
        });
    }

    // Popup Schließen Button
    function initPopup(className) {
        $(className).each(function() {
            $('<a class="close-button">Schließen</a>').appendTo($("#header")).click(function() {
                window.close();
            });
            log('Popup initialisiert');
        });
    }

    // Printbutton im Printlayout und Urls
    function initPrint(className) {
        $(className).each(function() {
            var mainArea = $("#mainarea");

            $(".cardview").removeClass("cardview");
            // Erzeuge Druck Button
            $('<a class="print-button">Drucken</a>').appendTo($("#header")).click(function() {
                window.print();
            });
            log('printbutton hinzugefügt');

            // Schreibe aktuelle Url unter den Text
            var urls = $('<div class="urls"></div>').append('<h2>Url dieser Seite</h2>');
            urls.append($("<ul></ul>").addClass('linklist').append($('<li></li>').text(window.location.href.replace(/\?.*/, ""))));

            // Sammle aller Links im Text und füge sie als Fußnote unter den Text an
            var links = $("#mainarea a:visible");
            if (links.length > 0) {
                urls.append("<h2>Links in diesem Artikel</h2>");
                var elementCounter = 0;
                var list = $("<ul></ul>").addClass("linklist").appendTo(urls);
                links.each(function() {
                    var url = $(this).attr('href');
                    if (url != null && url != "" && !$(this).find(":first").is("img") && url.substring(0, 1) != "#") {
                        if (url.substring(0, 1) == "/") {
                            url = "http://" + window.location.host + url;
                        }
                        if (url.substring(0, 1) == "~") {
                            url = "http://" + window.location.host + "/" + url;
                        }
                        $("<li></li>").text('[' + ++elementCounter + '] ' + url).appendTo(list);
                        $(this).after(' [' + elementCounter + ']')
                    }
                });
            }
            mainArea.append(urls);
            log('Urls extrahiert');
        });
    }

    // Social Media Popup
    function initBookmarks(prototypeId, linkClass) {

        // Holt sich Vorlage aus Snippet
        var prototype = $(prototypeId).remove().addClass("bookmarks").removeAttr("id");

        // Hängt funktionialität an alle entsprechenden PageTask links
        $(linkClass).each(function() {
            var self = $(this).css("position", "relative");
            var link = self.find('a');
            var popup = $('<div class="overlay"></div>').hide().append(prototype.clone().show());
            if (prototype.length == 0) {
                popup.text("Social Media Rendering muss dem Templaten noch hinzugefügt werden");
            }
            self.css('position: relative');
            popup.appendTo(self);
            link.click(function() {
                popup.toggle("fast");
                return false;
            });
        });
    }
    // Kontaktformular
    var contactForm = function() {
        function initResetButton() {
            $("#resetForm").click(function() {
                $(":input").each(function() {
                    var type = this.type
                    var tag = this.tagName.toLowerCase();
                    if (type == 'text' || type == 'password' || tag == 'textarea')
                        this.value = '';
                    else if (type == 'checkbox' || type == 'radio')
                        this.checked = false;
                    else if (tag == 'select')
                        this.selectedIndex = -1;
                });
            });
        };
        function initShowThema() {
            $("#contactDatenweitergabeContainer").css('display', 'none');
            $("#contactThema1Container").css('display', 'none');
            $("#contactThema2Container").css('display', 'none');
            $("#contactThema3Container").css('display', 'none');
            if ($(".contactBetreff").val() == 1 || $(".contactBetreff").val() == 5) {
                $("#contactThema1Container").css('display', 'block');
                $("#contactDatenweitergabeContainer").css('display', 'block');
            }
            if ($(".contactBetreff").val() == 2)
                $("#contactThema2Container").css('display', 'block');
            if ($(".contactBetreff").val() == 3)
                $("#contactThema3Container").css('display', 'block');


            $(".contactBetreff").each(function() {
                $(this).change(function() {
                    $("#contactDatenweitergabeContainer").css('display', 'none');
                    $("#contactThema1Container").css('display', 'none');
                    $("#contactThema2Container").css('display', 'none');
                    $("#contactThema3Container").css('display', 'none');
                    if (this.value == 1 || this.value == 5) {
                        $("#contactThema1Container").css('display', 'block');
                        $("#contactDatenweitergabeContainer").css('display', 'block');
                    }
                    if (this.value == 2)
                        $("#contactThema2Container").css('display', 'block');
                    if (this.value == 3)
                        $("#contactThema3Container").css('display', 'block');
                });
            });
        };

        function initShowLayer() {
            $(".form .button").each(function() {
                $(this).click(function() {
                    $(".form .layer").toggle();
                });
            });
        };

        return {
            init: function() {
                initResetButton();
                initShowLayer();
                initShowThema();

                log("Kontaktformular initialisiert");
            }
        };
    } ();
    // repariert click methode für Browser die das nicht unterstützen
    function initClickFix(cssClass) {
        $(cssClass).each(function() {
            if (typeof (this.click) == "undefined") {
                this.click = function() {
                    if (this.onlick) result = this.onclick();
                    if (typeof (result) == 'undefined' || result) {
                        eval($(this).attr("href"));
                    }
                }
            }
        });
    }


    function initLayer() {
        var visibleCount = 0;


        $(".openLayer").click(function() {
            var key = $(this).attr('key');
            $(".flashlayer").each(function() {
                var self = $(this);
                if (self.attr('key') == key && visibleCount == 0) {
                    visibleCount++;
                    self.css('display', 'block');
                }
                self.find(".closeLayer").click(function() {
                    visibleCount = 0;
                    self.css('display', 'none');
                });
            });

        });
        $("a.iframelayer, .iframelayer a").each(function() {
            var self = $(this);
            var url = self.attr("href");
            self.unbind();
            self[0].onclick = function() { };
            self.click(function() {
                var overlay = $("<div></div>").addClass("iframe-layer-overlay").appendTo($("body")).css("opacity", "0").fadeTo('fast', 0.5, function() {
                    var layer = $("<div></div>").addClass("layer").appendTo($("body"));
                    var box = $("<div></div>").addClass("layer-box").appendTo(layer);
                    var layerbar = $("<div class='layerBar clearfix'><div class='closeLayer'>Schließen</div></div>").appendTo(box);
                    var iframe = $("<iframe />").attr("src", url).attr("frameborder", "0").appendTo(box);

                    function hide() {
                        layer.remove();
                        overlay.fadeOut('fast', function() {
                            overlay.remove();
                        });
                    };
                    layer.click(hide);
                    layerbar.click(hide);
                    overlay.click(hide);
                    box.click(function() { return false; });

                    /* .close-buttons innerhalb der iframes (für Formulare, die normalerweise im Popup aufgehen */
                    try {
                        iframe.load(function() {
                            iframe.contents().find(".close-button").unbind().click(hide);
                        });
                    } catch (e) {
                        log(e);
                    }
                });
                return false;
            });
        });


    }
    function initFormControlls() {
        $(".form-slider").each(function() {
            var self = $(this);
            var slider = $("<span></span>");
            var disabled = self.find(".form-slider-disabled").val() == "True";
            var max = tmax = parseInt(self.find(".form-slider-max").val());
            var min = tmin = parseInt(self.find(".form-slider-min").val());
            var step = parseInt(self.find(".form-slider-step").val());
            var value = self.find(".form-slider-value");
            var valueField = $("<span></span>").addClass("form-slider-value-field");
            self.append(slider).append(valueField);

            if (max < min) {
                tmax = min;
                tmin = max;
            }

            function translate(v) {
                if (max < min) {
                    return Math.abs(v - max - min);
                }
                return v;
            }

            function update(v) {
                value.val(translate(v));
                valueField.text(translate(v));

            };

            var options = {
                disabled: disabled,
                max: tmax,
                min: tmin,
                step: step,
                value: parseInt(translate(value.val())),
                slide: function(event, ui) {
                    update(ui.value);
                }
            }

            slider.slider(options);
            valueField.text(value.val());
        });

        $(".form-progressbar").each(function() {
            var self = $(this);
            var components = self.text().split(" von ");
            if (components.length == 2) {
                self.empty();
                var current = parseInt(components[0]);
                var max = parseInt(components[1]);
                var width = self.width();
                var partWidth = (width / max) - 1;
                var bar = $("<div></div>").addClass("bar").appendTo(self);
                for (var i = 0; i < current; i++) {
                    var part = $("<div></div>").addClass("part").appendTo(bar).width(partWidth);
                    if (i == 0) {
                        part.addClass("ui-corner-left");
                    }
                    if (i == max - 1) {
                        part.addClass("ui-corner-right");
                        part.width(partWidth + 1);
                    }
                }
            } else {
                log("Progressbar konnte nicht initialisiert werden");
            }
        });
    };

    // Flash
    var Flash = function() {
        function getVersion() {
            // ie
            try {
                try {
                    var axo = new ActiveXObject('ShockwaveFlash.ShockwaveFlash.6');
                    try { axo.AllowScriptAccess = 'always'; }
                    catch (e) { return '6,0,0' }
                } catch (e) { }
                return new ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version').replace(/\D+/g, ',').match(/^,?(.+),?$/)[1];
                // other browsers
            } catch (e) {
                try {
                    if (navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin) {
                        return (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]).description.replace(/\D+/g, ",").match(/^,?(.+),?$/)[1];
                    }
                } catch (e) { }
            }
            return '0,0,0';
        }
        return {
            majorVersion: getVersion().split(',').shift(),
            init: function() {
                var version = this.majorVersion;
                $(".flash").each(function() {
                    var self = $(this);
                    var requiredVersion = self.find('param[name="requiredVersion"]').attr('value');
                    var alternate = self.find('.alternate');
                    if (parseInt(requiredVersion) > parseInt(version)) {
                        self.find('object').replaceWith(alternate);
                    }
                });

            }
        }
    } ();



    // Diverse Cookie Methoden
    var Cookies = {
        // Cookie lesen
        getCookie: function(name) {
            var index = document.cookie.indexOf(name + "=");
            if (index < 0)
                return null;
            index = document.cookie.indexOf("=", index) + 1;
            var endstr = document.cookie.indexOf(";", index);
            if (endstr < 0) endstr = document.cookie.length;
            return unescape(document.cookie.substring(index, endstr));
        },

        // Cookie schreiben 
        setPersistentCookie: function(name, value) {
            var expireDate = new Date();
            expireDate.setMonth(expireDate.getMonth() + 6);   // 6 Monate  

            document.cookie = name + "=" + value + "; expires=" + expireDate.toGMTString() + "; path=/";
        },

        // Cookie entfernen 
        deleteCookie: function(name) {
            if (this.getCookie(name))
                document.cookie = name + "=;path=/;expires=Thu, 01-Jan-1970 00:00:01 GMT";
        },

        // Feldelement setzen (URL-Syntax)
        setDictionaryValue: function(coll, key, value) {
            return key + "=" + value + "&" + this.removeDictionaryValue(coll, key);
        },

        // Feldelement entfernen (URL-Syntax)
        removeDictionaryValue: function(coll, key) {
            var array = coll.split('&');
            var result = '';
            for (var i = 0; i < array.length; i++) {
                if (array[i].indexOf(key + '=') != 0)
                    result += '&' + array[i];
            }
            return result.substr(1);
        },
        test: function() {
            this.setPersistentCookie("testcookie", "1");
            var value = Cookies.getCookie("testcookie");
            if (value == null)
                return false;
            this.deleteCookie("testcookie");
            return true;
        }
    };

    var PageVoting = {

        init: function(prototypeId, linkClass) {

            // Holt sich Vorlage aus Snippet
            var prototype = $(prototypeId).remove().removeAttr("id");
            var activeLink = null;

            // Hängt funktionialität an alle entsprechenden PageTask links
            $(linkClass).each(function() {
                var self = $(this).css("position", "relative");
                var link = self.find('a');

                var popup = $('<div class="vote-overlay"></div>').hide();
                if (prototype.length == 0) {
                    popup.text("Vote Rendering muss dem Templaten noch hinzugefügt werden");
                }
                self.css('position: relative');
                link.click(function() {
                    if (activeLink == null) {
                        popup.append(prototype.show()).appendTo(self);
                        popup.toggle("fast");
                        activeLink = link;
                    } else {
                        if (activeLink == link) {
                            activeLink = null;
                            popup.toggle("fast");
                        } else {
                            activeLink.click();
                            popup.append(prototype.show()).appendTo(self);
                            popup.toggle("fast");
                            activeLink = link;
                        }
                    }
                    return false;
                });
            });
        }
    };

    // Favoriten
    var Remember = {
        addFav: function() {
            if (!Cookies.test()) {
                alert("Für diese Funktion benötigen Sie die Cookie-Funktion Ihres PCs. Bitte ändern Sie Ihre Datenschutzeinstellungen entsprechend.");
                return;
            }

            var cval = Cookies.getCookie('efavs');
            Cookies.deleteCookie('efavs');
            if (cval == null)
                cval = "";
            var guid = _sc_CurrentId.toLowerCase().replace(/\{|\}/gi, '');
            cval = Cookies.setDictionaryValue(cval, guid, "1");
            Cookies.setPersistentCookie('efavs', cval);
            window.location.reload();
        },

        removeFav: function(oLink) {
            var guid = oLink.id.toLowerCase().substr(3);  //  ID darf keine "-" enthalten
            guid = guid.substring(0, 8) + '-' + guid.substring(8, 12) + '-' + guid.substring(12, 16) + '-' + guid.substring(16, 20) + '-' + guid.substring(20, 32);

            var cval = Cookies.getCookie('efavs');
            Cookies.deleteCookie('efavs');
            if (cval == null) cval = "";
            cval = Cookies.removeDictionaryValue(cval, guid);

            Cookies.setPersistentCookie('efavs', cval);

            $(oLink.parentNode).hide("fast");
        }
    };

    // Wird ausgeführt beim start der Seite
    $(function() {
        showHiddenElements(".js-show");
        initPopup("#popup-container");
        initPrint('#popup-container .print');
        initCardView(".cardview");
        initSlider('#contentslider', {});
        initCollapsableBoxes(".collapsable");
        initFastAccess(".fastaccess");
        initSearchfields('.searchfield');
        initAgentSearch('.agentsearch');
        initCaspardoSearch();
        PageVoting.init('#pagevoting', 'li.vote');
        initBookmarks('#socialMediaPrototype', 'li.bookmark');
        initAllowChange(".allowChange input");
        initPreviewAgentTexts();
        initIEFix();
        initClickFix("a.click-fix");
        initAgentMap(".agentMapGoogle");
        Flash.init();
        initLayer();
        initFormControlls();

        contactForm.init();

        log("initialisierung abgeschlossen");
    });

    // Öffentliche Schnittstelle
    // Überall aufrufbar über z.B. ergoUi.log('Das ist ein Test');
    window.ergoUi = {
        openWin: function(url, name, params) {
            var win = window.open(url, name, params);
            try {
                win.focus();
            } catch (e) {
                log(e);
            }
        },
        log: function(message) {
            // Ruft private Log Methode auf
            log(message);
        },
        pageVoting: PageVoting,
        remember: Remember,
        cookies: Cookies
    }
})(jQuery);


// RN 20100408 Funktion für Popup-Fenster
// KB 20100426 In ErgoUi Klasse verschoben. TODO: Aufrufe anpassen: ergoUi.openWin(...)
function openWin(url, name, params) {
    ergoUi.openWin(url, name, params);
}


// RN 20100520
function getUrlParam(strParamName) {
    var strReturn = "";
    var strHref = window.location.href;
    if (strHref.indexOf("?") > -1) {
        var strQueryString = strHref.substr(strHref.indexOf("?")).toLowerCase();
        var aQueryString = strQueryString.split("&");
        for (var iParam = 0; iParam < aQueryString.length; iParam++) {
            if (aQueryString[iParam].indexOf(strParamName.toLowerCase() + "=") > -1) {
                var aParam = aQueryString[iParam].split("=");
                strReturn = aParam[1];
                break;
            }
        }
    }
    return unescape(strReturn);
}
 
 

