function MM_jumpMenu(targ, selObj, restore) { //v3.0
    eval(targ + ".location='" + selObj.options[selObj.selectedIndex].value + "'");
    if (restore) selObj.selectedIndex = 0;
}

// Special Jumper for Finders only that allows for additional URL parameters
function MM_jumpMenuFinder(targ, selObj, restore, params) { //v3.0
    // targ = target window for the url
    // selObj = the select box
    // restore = unknown
    // params = additional parameters for the url

    // Checking to see if there are already params in the URL
    var strUrl = selObj.options[selObj.selectedIndex].value;
    if (strUrl.indexOf("?") > 0)
        strUrl = strUrl + "&";
    else
        strUrl = strUrl + "?";
    strUrl = strUrl + params;
    eval(targ + ".location='" + strUrl + "'");
    if (restore) selObj.selectedIndex = 0;
}

function MM_jumpMenu_blank(selObj) {
    window.open(selObj.options[selObj.selectedIndex].value, '_blank');
}

function nameSort(a, b) { if (a.name < b.name) return -1; if (a.name > b.name) return 1; return 0 }
function movieSort(a, b) { if (a.moviename < b.moviename) return -1; if (a.moviename > b.moviename) return 1; return 0 }
function rankSort(a, b) {return a.rank - b.rank; }

var isFirefox = false;
if (navigator.userAgent.indexOf("Firefox") != -1) {
    isFirefox = true;
}

xmlhttp = null
// code for Mozilla, etc.
if (window.XMLHttpRequest) {
    xmlhttp = new XMLHttpRequest()
}
// code for IE
else if (window.ActiveXObject) {
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP")
}

if (typeof topsFinder == "undefined") {
    var topsFinder = function() { // apply a topsFinder namespace
        var maxRetryCount = 5

        function createMethodReference_(obj, methodName) {
            return function() { obj[methodName]() }
        }

        selectorjsonresp_ = function(jsondata) {
            //remove highlite from first option
            if (this.idx < this.options.length && this.options[this.idx].className == "hilite") {
                this.options[this.idx].className = "";
                this.options[this.idx].text = this.title;
                this.options[this.idx].selected = true;
            }

            try {
                items = jsondata.results
                this.jsonerrorcount = 0
                var sort = jsondata.options.sort || nameSort;
            }
            catch (ex) {
                if ((!this.jsonerrorcount) || (isNaN(this.jsonerrorcount))) this.jsonerrorcount = 0
                this.jsonerrorcount++
                if (this.jsonerrorcount < maxRetryCount) {
                    window.setTimeout(createMethodReference_(this, 'fillme'), 1000)
                }
                else {
                    // too many errors. bail.
                }
                this.disabled = false;
                return
            }

            origOpt = (this.selectedIndex >= 0) ? this.options[this.selectedIndex] : false
            origOptValue = '' + origOpt.value
            origOptText = '' + origOpt.text

            try {
                origOptValue = $(this.finder.id + '_Current_' + this.facet).value
            } catch (ex) { }

            if (this.filter) {
                var filtereditems = new Array();
                j = 0;
                for (i = 0; i < items.length; i++) {
                    if (items[i].name.match(this.filter)) {
                        filtereditems[j++] = items[i];
                    }
                }
                items = filtereditems;
            }

            numitems = items.length;
            items.sort(sort);


            //always save unfiltered names just incase we filter it below
            for (i = 0; i < numitems; i++) {
                items[i].unfiltered = items[i].name;
            }

            //if it has an id, then we have to strip it out (so it wont be displayed and so the categories can collapse)
            //(and it has to have collapse if it has hasid...)
            if (this.className.indexOf("hasid") != -1) {
                for (i = 0; i < numitems; i++) {
                    items[i].name = items[i].name.substring(items[i].name.indexOf("/"));
                }
                items.sort(nameSort)
            }

            if (this.className.indexOf("collapse") != -1) {
                var key = "";
                for (i = 0; i < numitems; i++) {
                    key = items[i].name;
                    while (key.indexOf("..") == 0) {
                        key = key.substring(2, key.length);
                    }
                    for (j = i + 1; j < numitems; j++) {
                        if (items[j].name.indexOf(key + "/") > -1) {
                            items[j].name = items[j].name.replace(key, "..");
                            items[i].heading = 1;
                        } else {
                            break;
                        }
                    }
                }
            }
            this.options.length = 1;
            for (i = 0; i < numitems; i++) {
                if (this.className.indexOf("collapse") != -1) {
                    optText = items[i].name.replace(/(?=\.*)\//, ''); //remove / from text
                    optValue = items[i].unfiltered;
                } else {
                    optText = (this.strip) ? items[i].name.replace(this.strip, '') : items[i].name
                    optValue = items[i].name
                }
                if (optText.match(/^\s*$/) != null || optText == "Unknown") {
                    continue;
                }
                if (this.className.indexOf("hidecount") == -1) {
                    optText += " ( " + items[i].value + " ) ";
                }
                this.options[this.length] = new Option(optText, optValue);
                if (items[i].heading == 1) {
                    this.options[this.length - 1].className = "heading";
                }
            }

            for (i = 0; i < this.length; i++) {
                if (origOptValue == this.options[i].value) this.options[i].selected = true
            }
            try { $(this.finder.id + '_Spinner').style.visibility = "hidden" } catch (ex) { }
            this.loaded = 1;
            this.disabled = false;
        }

        selectedvalue_ = function() {
            var index = this.selectedIndex
            if (index < 1) return ''
            var opt = this.options[index]
            return opt.value || opt.text
        }

        selectedtext_ = function() {
            var index = this.selectedIndex
            if (index < 0) return ''
            var opt = this.options[index]
            return opt.text
        }

        doselect_ = function() {
            try {
                $(this.finder.id + '_Current_' + this.facet).value = this.selectedvalue()
            } catch (ex) { }
            var count = 0;
            for (var k in this.finder.selectors) {
                var aselector = this.finder.selectors[k]
                if (this != aselector) {
                    aselector.fillme();
                    count++;
                }
            }

            //check if only one and they didnt tell us to wait for the user to click go
            if (count == 0 && this.className.indexOf("wait4click") == -1) {
                this.dosearch();
            }
        }

        fillme_ = function() {



            if (this.facet.indexOf("Param:") == -1) { //if it starts with param then dont bother filling it
                var queryurl = this.finder.counturl()
                try { $(this.finder.id + '_Spinner').style.visibility = "visible" } catch (ex) { }
                queryurl += this.finder.refinements(this)

                jsonreq.call(queryurl + '&groupby=' + escape(this.facet.replace(/__/, ':/')), this);


            }
        }


        prefill_ = function() {
            if (!this.loaded || this.options.length == 1) {
                if (!isFirefox) {
                    this.disabled = true;
                    if (!this.title) {
                        this.title = this.options[this.idx].text;
                    }
                }
                this.options[this.idx] = new Option("LOADING...", "");
                this.options[this.idx].className = "hilite";
                this.fillme();
            }
        }

        jumpfill_ = function() {
            if (!this.loaded) {
                if (!isFirefox) {
                    this.disabled = true;
                    if (!this.title) {
                        this.title = this.options[this.idx].text;
                    }
                }
                this.options[this.idx] = new Option("LOADING...", "");
                this.options[this.idx].className = "hilite";
                xmlhttp.open("GET", this.fillurl, true);
                var control = this;
                xmlhttp.onreadystatechange = function() {
                    if (xmlhttp.readyState == 4) {
                        var items = eval('(' + xmlhttp.responseText + ')').results;
                        control.length = 1;

                        if (control.className.indexOf("moviesort") != -1) {
                            var name;
                            for (i = 0; i < items.length; i++) {
                                name = items[i].name;
                                name = name.replace(/^The\s/i, "");
                                name = name.replace(/^A\s/i, "");
                                name = name.replace(/^An\s/i, "");
                                items[i].moviename = name;
                            }
                            items.sort(movieSort);
                        } else {
                            items.sort(nameSort);
                        }

                        for (var i = 0; i < items.length; i++) {
                            items[i].name = items[i].name.replace(/&amp;/, '&');
                            control.options[control.length] = new Option(items[i].name, items[i].value);
                        }
                        if (!isFirefox) {
                            control.options[control.idx].text = control.title;
                            control.disabled = false;
                        }
                        control.options[control.idx].className = "";
                        control.loaded = 1;
                    }
                }
                xmlhttp.send(null);
            }
        }

        refinements_ = function() {
            var refinements = []
            var params = []
            var paramname
            refinements.push(escape(this.baserefinement.value))
            var selectorVal
            var fakequery = "";

            for (var i in this.checkboxes) {
                if (this.checkboxes[i].checked) {
                    refinements.push(escape(this.checkboxes[i].value));
                }
            }

            for (var i in this.selectors) {
                if (arguments[0]) { // optionally pass an element to skip
                    if (this.selectors[i] == arguments[0]) {
                        continue
                    }
                }
                selectorVal = this.selectors[i].selectedvalue()
                var temp = this.selectors[i].selectedtext();
                temp = temp.replace(/\(.*?\)/, '');
                temp = temp.replace(/&/, 'and');
                if (fakequery.length != 0) {
                    fakequery += ", ";
                }
                fakequery += temp;

                var currentVal = ''
                try {
                    currentVal = $(this.id + '_Current_' + this.selectors[i].facet).value
                } catch (ex) { }




                if (((selectorVal == "ALL") || (selectorVal == "")) && (currentVal)) selectorVal = currentVal
                if ((selectorVal != "ALL") && (selectorVal != "")) {
                    if (this.selectors[i].facet.indexOf("Param:") == 0) {
                        //starts with Param: so this should be added as a parameter not a refinement
                        paramname = this.selectors[i].facet.substring(6)
                        params.push(paramname + "=" + selectorVal);
                    } else {
                        temp = selectorVal.replace(/,/, '');
                        refinements.push(escape(this.selectors[i].facet.replace(/:\/.+$/, '')) + ":" + escape('"' + temp + '"'))
                    }
                }
            }
            if (params.length > 0) {
                return '&' + params.join('&') + '&r=' + refinements.join('%20AND%20') + '&fq=' + fakequery;
            } else {
                return '&r=' + refinements.join('%20AND%20') + '&fq=' + fakequery;
            }
        }

        searchurl_ = function() {
            var currentVal = ''
            try {
                currentVal = $(this.id + '_SearchUrl').value
            } catch (ex) {
                currentVal = '/searchResults?q='
            }
            return currentVal
        }

        counturl_ = function() {
            var currentVal = ''
            try {
                currentVal = $(this.id + '_CountUrl').value
            } catch (ex) {
                currentVal = '/finder/getcounts?searchtype=Listing&q='
            }
            return currentVal
        }

        docheckbox_ = function() {
            for (var k in this.finder.selectors) {
                var aselector = this.finder.selectors[k]
                if (this != aselector) aselector.fillme()
            }
        }

        dosearch_ = function() {
            var executesearchurl = this.finder.searchurl()
            executesearchurl += this.finder.refinements()
            if (this.finder.target) {
                window.open(executesearchurl, this.finder.target);
            } else {
                window.location = executesearchurl;
            }
        }

        function addnodes(parentobj, childnode) {
            if (childnode == null) return;
            for (var i = 0; i < childnode.length; i++) {
                if (childnode[i] && childnode[i].id && childnode[i].id.substr(0, 7) == 'Finder_') {
                    parentobj[childnode[i].id] = childnode[i];
                } else {
                    addnodes(parentobj, childnode[i].childNodes);
                }
            }
        }

        function activateFinders() {
            var formelements = new Array();
            formEls = document.getElementsByTagName('form');
            for (var i = 0; i < formEls.length; i++) {
                formelements.push(formEls[i]);
            }
            formEls = document.getElementsByTagName('span');
            for (var i = 0; i < formEls.length; i++) {
                if (formEls[i].id.substr(0, 7) == 'Finder_') {
                    //push all child elements onto span
                    addnodes(formEls[i], formEls[i].childNodes);
                    formelements.push(formEls[i]);
                }
            }

            for (var i = 0; i < formelements.length; i++) {
                var curform = formelements[i];
                if (curform.id.substr(0, 7) == 'Jumper_') {
                    curform.selector = document.getElementById(curform.id + '_Select');
                    curform.selector.fillurl = document.getElementById(curform.id + '_URL').value;
                    if (!isFirefox) {
                        curform.selector.onmouseover = jumpfill_
                        curform.selector.onmousedown = jumpfill_
                        curform.selector.idx = 0;
                    } else {
                        curform.selector.onfocus = jumpfill_
                        curform.selector.idx = 1;
                    }
                    curform.selector.disabled = false;
                    curform.selector.loaded = 0;
                    curform.selector.finder = curform;
                }

                if (curform.id.substr(0, 7) == 'Finder_') {
                    try { debuglog('found finder ' + curform.id) } catch (ex) { }
                    if (curform[curform.id + '_Refinement']) curform.baserefinement = curform[curform.id + '_Refinement'];
                    curform.showCounts = true
                    curform.refinements = refinements_
                    curform.searchurl = searchurl_
                    curform.counturl = counturl_
                    curform.selectors = {}
                    curform.checkboxes = {}
                    for (j = 1; j < 9; j++) {
                        if ((curform[curform.id + '_Facet_' + j]) && (curform[curform.id + '_Select_' + j]) && (curform[curform.id + '_Current_' + j])) {
                            try { debuglog('selector ' + curform[curform.id + '_Select_' + j].id) } catch (ex) { }
                            var curselect = curform[curform.id + '_Select_' + j]
                            curselect.facetnum = j
                            curselect.facet = curform[curform.id + '_Facet_' + j].value
                            if (curform[curform.id + '_Filter_' + j]) {
                                curselect.filter = new RegExp(curform[curform.id + '_Filter_' + j].value, 'i');
                            } else {
                                curselect.filter = null;
                            }
                            curselect.className = curform[curform.id + '_Facet_' + j].className;
                            try { debuglog('facet ' + curform[curform.id + '_Select_' + j].id + ' = ' + curselect.facet) } catch (ex) { }
                            if (matches = curselect.facet.match(/FullCategory:(.+)$/)) {
                                curselect.strip = new RegExp('^' + matches[1] + '/*', 'i')
                            }
                            curselect.jsonresp = selectorjsonresp_
                            curselect.selectedvalue = selectedvalue_
                            curselect.selectedtext = selectedtext_
                            curselect.doselect = doselect_
                            curselect.onchange = doselect_
                            curselect.dosearch = dosearch_
                            if (curselect.facet.indexOf("Param:") == -1) { //if it starts with param then dont bother filling it
                                if (!isFirefox) {
                                    curselect.onmouseover = prefill_
                                    curselect.onmousedown = prefill_
                                    curselect.idx = 0;
                                } else {
                                    curselect.onfocus = prefill_
                                    curselect.idx = 1;
                                }
                            }
                            curselect.loaded = 0;

                            curselect.fillme = fillme_

                            curselect.finder = curform
                            curform.selectors[curselect.id] = curselect
                            curselect.options[0].selected = true;
                            curselect.blur();
                            curselect.disabled = false;
                        }
                    }
                    for (j = 1; j < 9; j++) {
                        var curcheckbox = document.getElementById(curform.id + '_Checkbox_' + j);
                        if (curcheckbox) {
                            curform.checkboxes[curcheckbox.id] = curcheckbox
                            curcheckbox.onchange = docheckbox_
                            curcheckbox.finder = curform
                        }
                    }

                    //					for(var k in curform.selectors) {
                    //						curform.selectors[k].fillme()
                    //					}
                    if ($(curform.id + '_Go')) {
                        $(curform.id + '_Go').finder = curform
                        $(curform.id + '_Go').onclick = dosearch_
                    }
                }
            }
        }
        var oldonload = window.onload
        if (typeof window.onload != 'function') {
            window.onload = activateFinders
        } else {
            window.onload = function() {
                oldonload()
                activateFinders()
            }
        }
    } ()
}

function getLatLongFromPostal(field, selectedform) {
    var postalcode = field.value.toLowerCase();
    if (postalcode != "")
    {
        curform = selectedform; //set global var with current form so we can set hidden fields in call back
        try {
            document.getElementById(curform + "_MapButton").disabled = true;
            document.getElementById(curform + "_FindButton").disabled = true;
        } catch (ex) { }

        //if it doesnt look like a postalcode alert
        if (!postalcode.match(/[a-z]\d[a-z]\s?\d[a-z]\d/)) 
        {
            alert("Sorry this doesnt look like a postalcode [A1B2C3] or [A1B 2C3]");
            field.focus();
        }
        else
        {
            postalcode = postalcode.replace(/\s/g, '');

            var url = "http://maps.google.com/maps/geo?q=" + postalcode + "&callback=georesults&output=json&key=" + GMapKey;
            loadContent(url);
        }
    }
}

function loadContent(file) {
    var head = document.getElementsByTagName('head').item(0);
    var scriptTag = document.getElementById('loadScript');
    if (scriptTag) {
        head.removeChild(scriptTag);
    }
    script = document.createElement('script');
    script.src = file;
    script.type = 'text/javascript';
    script.id = 'loadScript';
    head.appendChild(script);
}

function georesults(obj) {
    if (obj.Status.code == 200) {
        document.getElementById(curform + "_Latitude").value = obj.Placemark[0].Point.coordinates[1];
        document.getElementById(curform + "_Longitude").value = obj.Placemark[0].Point.coordinates[0];
    } else {
        alert("error loading postalcode: " + obj.name);
    }

    try {
        document.getElementById(curform + "_MapButton").disabled = false;
        document.getElementById(curform + "_FindButton").disabled = false;
    } catch (ex) { }


}


function Olyfindersearch(finder) {
    var refinements = "&r=" + document.getElementById(finder + "_Refinement").value;
    var finderOBJ = document.getElementById(finder + "_Select_1").finder;
    var query = finderOBJ.refinements();

    var searchurl = document.getElementById(finder + "_SearchUrl").value + query + '&referer=finder';

    document.location.href = searchurl;

    return false;
}



function findersearch(finder,event) {
    var refinements = "&r=" + document.getElementById(finder + "_Refinement").value;
    var latitude = document.getElementById(finder + "_Latitude").value;
    var longitude = document.getElementById(finder + "_Longitude").value;
    var qname = document.getElementById(finder + "_Name").value;
    var finderOBJ = document.getElementById(finder + "_Select_1").finder;
    var query = finderOBJ.refinements();
    
    if (qname) {
        query += "&value=" + qname + "&r=(Title:%22" + qname + "%22 OR Abstract:%22" + qname + "%22 OR keywords:%22" + qname + "%22 OR category:%22" + qname + "%22)";
    }
    
    if (latitude && longitude) 
    {
        var minlat = parseFloat(latitude) - 0.03600936415098487942;
        var maxlat = parseFloat(latitude) + 0.03600936415098487942;
        var maxlon = parseFloat(longitude) + 0.10162353515625;
        var minlon = parseFloat(longitude) - 0.10162353515625;
        query += "&ll=" + minlat + ":" + minlon + ":" + maxlat + ":" + maxlon + "&latitude=" + latitude + "&longitude=" + longitude;
    }

    var searchurl = document.getElementById(finder + "_SearchUrl").value + query;
    document.location.href = searchurl;

    return false;
}

function mapsearch(finder) {
    var refinements = "&r=" + document.getElementById(finder + "_Refinement").value;
    var latitude = document.getElementById(finder + "_Latitude").value;
    var longitude = document.getElementById(finder + "_Longitude").value;
    var qname = document.getElementById(finder + "_Name").value;
    var finderOBJ = document.getElementById(finder + "_Select_1").finder;

    var query = finderOBJ.refinements();

    if (qname) 
    {
        query += "&value=" + qname + "&r=(Title:%27" + qname + "%27 OR Abstract:%27" + qname + "%27 OR keywords:%27" + qname + "%27 OR category:%27" + qname + "%27)";
    }
    
    if (latitude && longitude) 
    {
        var minlat = parseFloat(latitude) - 0.03600936415098487942;
        var maxlat = parseFloat(latitude) + 0.03600936415098487942;
        var maxlon = parseFloat(longitude) + 0.10162353515625;
        var minlon = parseFloat(longitude) - 0.10162353515625;
        query += "&ll=" + minlat + ':' + minlon + ':' + maxlat + ':' + maxlon + "&latitude=" + latitude + "&longitude=" + longitude;
    }

    var searchurl = document.getElementById(finder + "_MapSearchUrl").value + query;
    document.location.href = searchurl;

    return false;
}

var curform = "";
switch (window.location.hostname) {
	case "parentcentral.qa.torstardigital.net":
		GMapKey = "ABQIAAAApoblCmBqiTcHmk9W8rHM9hTLNK7jDiSTtESs_b2Sg7ZZFMk3yxTZq8EpZ-2rQe3bEPINkr4u_7b8sg";
		break;
	case "parentcentral.staging.torstardigital.net":
		GMapKey = "ABQIAAAApoblCmBqiTcHmk9W8rHM9hSDmExK4F7448eqFghZNoAAREmvlBRl-1TGYYeZ6qNgY9ir3C4wIhWIpg";
		break;
	case "yourhome.qa.torstardigital.net":
		GMapKey = "ABQIAAAApoblCmBqiTcHmk9W8rHM9hTLMnDV46rZi2ewxWZh9lMZrUI1HBRIfarrpfSk4NucAePHlmuTsnXjHg";
		break;
	case "yourhome.staging.torstardigital.net":
		GMapKey = "ABQIAAAApoblCmBqiTcHmk9W8rHM9hQZyVuWEG9_w54ngWJryXhKB-OuFBTEhGdt7JqJy3lt4dqNLbjBg0OXyw";
		break;
	case "healthzone.qa.torstardigital.net":
		GMapKey = "ABQIAAAApoblCmBqiTcHmk9W8rHM9hSZyVjEjsL0EUzn4WXUOK7UEq6f8RR53CaZMXI6A_-TJQ_js_Q3P_P5Lg";
		break;
	case "healthzone.staging.torstardigital.net":
		GMapKey = "ABQIAAAApoblCmBqiTcHmk9W8rHM9hR1FpSrF5Ie91KBAmQRUGdmfgW9-hRyI2xOiaPjyQjCsExHKFiGxdW0CQ";
		break;
	case "parentbetatest.torstardigital.net":
		GMapKey = "ABQIAAAAXGyG8HakY9s3tZiqEVqldxSVlSaDbbpTVAJhMk3ivEN63A89xRSFUtutO6yVRWNVhcN6suAka8E2ZQ";
		break;

	case "yourhomebetatest.torstardigital.net":
		GMapKey = "ABQIAAAAXGyG8HakY9s3tZiqEVqldxQI5oefL66bG_bFcLNDp7gTAm76oxRa1e3S97TAz082uQQv4TsCzubB6g";
		break;

	case "healthzonebetatest.torstardigital.net":
		GMapKey = "ABQIAAAAXGyG8HakY9s3tZiqEVqldxQjbeKBgGxbpIZad--IOmJ5edEhaBRy0osubZ_i3FbHgjKUaTWfVZpULA";
		break;

    case "parentcentralbeta.qa.torstardigital.net":
    	GMapKey = "ABQIAAAAXGyG8HakY9s3tZiqEVqldxSDLbNalzv-v3PFkZAN7X-kUcrgExQbX1qXJlLp6zZ9HdrVzKYuiWBnqw"
        break
       case "parentcentralbeta.staging.torstardigital.net":
       	GMapKey = "ABQIAAAAXGyG8HakY9s3tZiqEVqldxSREQWS_lxc33lTxqvbokm6G2Cq9xQOXIhuwlJg9i0JeHLzzXRUl3kBmw"
        break
       case "yourhomebeta.qa.torstardigital.net":
       	GMapKey = "ABQIAAAAXGyG8HakY9s3tZiqEVqldxQbKWKJgTyClAiiyAGJbC4GKGZeZRQ3uZOAFYRF1-8KD-lAMGnHPVjY8A"
        break
       case "yourhomebeta.staging.torstardigital.net":
       	GMapKey = "ABQIAAAAXGyG8HakY9s3tZiqEVqldxRJI-p369HYd2QJT320G9nw0-ZTsxQhKRACb7b1EsSHKMzCqULxGv3zjQ"
        break
       case "healthzonebeta.qa.torstardigital.net":
       	GMapKey = "ABQIAAAAXGyG8HakY9s3tZiqEVqldxTrfXjBrjC2j2CjhsHt30AbhfwHWhTtSemvX_Rw7teqn22eE_BKRo5g1Q"
        break
       case "healthzonebeta.staging.torstardigital.net":
       	GMapKey = "ABQIAAAAXGyG8HakY9s3tZiqEVqldxRcyockMVEQGMy5aZpKdB5PwswE0hTaVaM0-lKd08taR-AzoeldmvtV3g"
        break
    case "www.parentcentral.ca":
        GMapKey = "ABQIAAAApoblCmBqiTcHmk9W8rHM9hR2RIXV7GkA24mEyxx5a8z9r2KmLhR4rvj7EoXoCvGj4PfqJiM4OCpAbw"
        break
    case "parentcentral.ca":
        GMapKey = "ABQIAAAApoblCmBqiTcHmk9W8rHM9hRMdCCqJINoNsMRuVvjGH5yMuQRshTh_DL3U_isNsd1H-al-0y8A5oiEw"
        break
    case "www.yourhome.ca":
        GMapKey = "ABQIAAAApoblCmBqiTcHmk9W8rHM9hTuAZXS5e0Jh5VKC72Ayk-xrbLysRQrKL4vhP7ZjIXrairK-4GrAR6sBQ"
        break
    case "yourhome.ca":
        GMapKey = "ABQIAAAApoblCmBqiTcHmk9W8rHM9hQa1ruBKTyTDDpDOjPONmFYlLJCuBTKKTY7ZuU5cDDdZIUttVBtIWwYeQ"
        break
    case "www.healthzone.ca":
        GMapKey = "ABQIAAAApoblCmBqiTcHmk9W8rHM9hQK5TyDnAhzkfQLPd6-eQ-1KmfhpBQ0UBcMJ3k4OerOwKQQBD3BG-dtig"
        break
    case "healthzone.ca":
        GMapKey = "ABQIAAAApoblCmBqiTcHmk9W8rHM9hQqU0kB9_np_DJpyLTbkH1Wtr3QpxTzdwqRcuuXA9jHPonVL5OEc8ab2w"
        break
    case "localhost":  // on port 80 only
        GMapKey = "ABQIAAAAejUldDUpOvZzkh2F748ThBT2yXp_ZAY8_ufC3CFXhHIE1NvwkxQzoIxhFMJCopdcwCF4xpWwGlxIEA"
        break
    default:
        GMapKey = ""
}


function notsofindersearch(notsofindername) {
    var matcher = new RegExp('^' + notsofindername, 'i');
    var remover = new RegExp('^(' + notsofindername + '_)', 'i');
    var f = document.forms['aspnetForm'];
    var searchurl = undefined;
    var params = {};

    for (var itemnum in f.elements) {
        var item = f.elements[itemnum];
        if (item == undefined)
            continue;
        if (matcher.test(item.name)) {
            var paramname = item.name.replace(remover, '');
            if (paramname === 'SearchUrl') {
                searchurl = item.value;
            } else {
                if (item.value !== '')
                    params[paramname] = item.value;
            }
        }
    }

    var urlparamstring = '';

    var separator = '';
    for (var name in params) {
        urlparamstring = urlparamstring + separator + name + '=' + escape(params[name]);
        separator = '&';
    }

    if (searchurl !== undefined)
        window.open(searchurl + "?" + urlparamstring, '_blank', '');
    return false;
}



function classifiedsfindersearch(classifiedsfindername) {
    var matcher = new RegExp('^' + classifiedsfindername, 'i');
    var remover = new RegExp('^(' + classifiedsfindername + '_)', 'i');
    var f = document.forms['aspnetForm'];
    var searchurl = undefined;
    var params = {};

    for (var itemnum in f.elements) {
        var item = f.elements[itemnum];
        if (item == undefined)
            continue;
        if (matcher.test(item.name)) {
            var paramname = item.name.replace(remover, '');
            if (paramname === 'SearchUrl') {
                searchurl = item.value;
            } else {
                if (item.value !== '')
                    params[paramname] = item.value;

            }
        }
    }

    if (!params['q']) { params['q'] = ""; }

    var urlparamstring = "q=" + escape(params['q']) + "&r=FullCategory:%22" + escape(params['FullCategory']) + "%22";

    if (searchurl !== undefined)
        window.open(searchurl + "?" + urlparamstring, '_blank', '');
    return false;
}

/* custom finder for external links */
function externalFinderSearch($anchor, wrapperId) {
    var $form = document.getElementById(wrapperId);
    var parameters = Form.serialize($form);
    var url = $anchor.getAttribute('rel', 2);
    window.open(url + "?" + parameters, '_blank', '');
} 