//##########################################################
//#
//#     Date:           15 March 2006
//#     Author:         David Braiden/Elaine Galvin
//#     Comments:       This code can accept a url and a
//#                     comma seperated list of url parameters
//#                     It will append all of the specified parameter
//#                     from the current page onto the specified url
//#                     and open a popup window with that url.In doing so it will
//#                     maintain all of the session variables.
//#
//#     Modifications:  10-Jul-06 Changed engine/session info to headerForm2 (Elain Galvin)
//#			10-Jul-06 Changed engine/session info to searchForm (David Braiden)
//##########################################################

function PageQuery(q) {

        q = q.replace(/\%26/g, "&")

        if(q.length > 1) this.q = q.substring(1, q.length);
        else this.q = null;
        this.keyValuePairs = new Array();
        if(q) {
                for(var i=0; i < this.q.split("&").length; i++) {
                        this.keyValuePairs[i] = this.q.split("&")[i];
                }
        }
        this.getKeyValuePairs = function() { return this.keyValuePairs; }
        this.getValue = function(s) {
                for(var j=0; j < this.keyValuePairs.length; j++) {
                        if(this.keyValuePairs[j].split("=")[0] == s){
                                return this.keyValuePairs[j].split("=")[1];
                        }
                }
                return false;
        }
        this.getParameters = function() {
                var a = new Array(this.getLength());
                        for(var j=0; j < this.keyValuePairs.length; j++) {
                                a[j] = this.keyValuePairs[j].split("=")[0];
                        }
                return a;
        }
        this.getLength = function() { return this.keyValuePairs.length; }
}

function queryString(key){
        var page = new PageQuery(window.location.search);
        return unescape(page.getValue(key));
}

function getItem(key){
        return(queryString(key));
}

function Build_Url(url,Fields){
        var url_string_param = "";
        var myFields = Fields.split(",");

        for (i=0;i<myFields.length;i++)
        {
                url_string_param += "&"+myFields[i]+"=" + getItem(myFields[i]);
        }

        var new_url = url + url_string_param;
        return(new_url);
}

function OpenWindow(popURL, popName, w, h, scroll)
{
        var winl = (screen.width - w) / 2;
        var wint = (screen.height - h) / 2;
        var winprops = 'height='+h+',width='+w+',top='+wint+',left='+winl+',scrollbars='+scroll+',resizable=no,fullscreen=no,toolbar=no,status=no,menubar=no,directories=no,location=no';

        var New_URL = "";
        
        var homePageLink = popURL.indexOf("BV_SessionID");

        if (homePageLink < 0)
        {
                popBV_EngineID = document.searchForm.BV_EngineID.value;
                popBV_SessionID = document.searchForm.BV_SessionID.value;
                New_URL = popURL + "&BV_SessionID=" + popBV_SessionID + "&BV_EngineID=" + popBV_EngineID;
        }
        else
        {
                New_URL = Build_Url(popURL,"BV_SessionID,BV_EngineID");
        }
        var win = window.open(New_URL, popName, winprops);
}
