/* contains search results functions and identify icon */

//function used to display the search results
//does not start or begin table, only displays results as row
function mq_display_searchResults(container, searchResults) {
    if(!mq_ParamExists(searchResults))
        return;

    var tbody = document.createElement ('tbody');

    for(var count=0;count<searchResults.count;count++) {
        var loc = searchResults.getAt[count];

        var tr1 = document.createElement ('tr');

            var td1 = document.createElement ('td');
                td1.className = 'eightball';
            if (mq_ParamExists (av.proxIconId)) {
                createImg (td1, '/images/icons/' + av.proxIconId + '_' + loc.number + '.gif', '', '', '', '', loc.number);
            } else {
                td1.appendChild (document.createTextNode (loc.number));
            }

            var td2 = document.createElement ('td');
                createImg (td2, loc.map.request, loc.map.width, loc.map.height, '', '', '');
                td2.width = loc.map.height;

            var td3 = document.createElement ('td');
                td3.className = 'resultAddr';
                mq_display_address_location(td3, loc, generateLocMapRQ(loc));

            var td4 = document.createElement ('td');
                td4.className = 'resultDist';
                if (mq_ParamExists(loc.distance)) {
                    var distance = loc.distance.value + (loc.distance.units == "mi" ? " miles" : " kilometers");
                } else {
                    var distance = '';
                }
                td4.appendChild (document.createTextNode (distance));

        tr1.appendChild (td1);
        tr1.appendChild (td2);
        tr1.appendChild (td3);
        tr1.appendChild (td4);
        tbody.appendChild (tr1);

        if(count < eval(searchResults.count)-1) {
            var tr2 = document.createElement ('tr');

                var td5 = document.createElement ('td');
                    td5.colSpan = 4;
                    td5.appendChild (document.createElement ('hr'));

            tr2.appendChild (td5);
            tbody.appendChild (tr2);
        }
    }
    container.appendChild (tbody);
}

//creates the url required to transform a location into a locmap request.
function generateLocMapRQ(loc) {
    var url = "advantage.adp?transaction=locmap";
        url+= createMapNV(loc.map);
        url+= createLocNV(loc,"",-1);

    return url;
}

//creates name value pairs from a map object.
//NOTE: does not use height and width leaves caller to add these.
function createMapNV(map) {
    var url="";

    if (!mq_ParamExists(map))
        return url;

    if(mq_ParamExists(map.latitude) && map.latitude.length > 0) {
        url+="&mapLatitude="+map.latitude;
    }
    if(mq_ParamExists(map.longitude) && map.longitude.length > 0) {
        url+="&mapLongitude="+map.longitude;
    }
    if(mq_ParamExists(map.zoomLevel) && map.zoomLevel.length > 0) {
        url+="&zoomLevel="+map.zoomLevel;
    }
    if(mq_ParamExists(map.mapStyle) && map.mapStyle.length > 0) {
        url+="&mapStyle="+map.mapStyle;
    }

    return url;
}

//function to url_encode equal and ampersands
function urlEncoder(t) {
    if(!mq_ParamExists(t)){return "";}
    t = t.replace("&", "%26");
    t = t.replace("=", "%3d");
    return t;
}

//function used to turn a location into Name value pairs
function createLocNV(loc, prefix, num) {
    var url = "";

    if(mq_ParamExists(loc) != true)
        return url;

    if(mq_ParamExists(loc.name) && loc.name.length > 0) {
        url+="&";
        if (prefix != "")
            url+=prefix;

        url+="name";

        if (num > -1)
            url+=num;

        url+="=" + urlEncoder(loc.name);
    }
    if(mq_ParamExists(loc.address) && loc.address.length > 0) {
        url+="&";
        if (prefix != "")
            url+=prefix;

        url+="address";

        if (num > -1)
            url+=num;

        url+="=" + urlEncoder(loc.address);
    }
    if(mq_ParamExists(loc.city) && loc.city.length > 0) {
        url+="&";
        if (prefix != "")
            url+=prefix;

        url+="city";

        if (num > -1)
            url+=num;

        url+="=" + urlEncoder(loc.city);
    }
    if(mq_ParamExists(loc.stateProvince) && loc.stateProvince.length > 0) {
        url+="&";
        if (prefix != "")
            url+=prefix;

        url+="stateProvince";

        if (num > -1)
            url+=num;

        url+="=" + loc.stateProvince;
    }
    if(mq_ParamExists(loc.country) && loc.country.length > 0) {
        url+="&";
        if (prefix != "")
            url+=prefix;

        url+="country";

        if (num > -1)
            url+=num;

        url+="=" + loc.country;
    }
    if(mq_ParamExists(loc.latitude) && loc.latitude.length > 0) {
        url+="&";
        if (prefix != "")
            url+=prefix;

        url+="latitude";

        if (num > -1)
            url+=num;

        url+="=" + loc.latitude;
    }
    if(mq_ParamExists(loc.longitude) && loc.longitude.length > 0) {
        url+="&";
        if (prefix != "")
            url+=prefix;

        url+="longitude";

        if (num > -1)
            url+=num;

        url+="=" + loc.longitude;
    }
    if(mq_ParamExists(loc.iconId) && loc.iconId.length > 0) {
        url+="&";
        if (prefix != "")
            url+=prefix;

        url+="iconid";

        if (num > -1)
            url+=num;

        url+="=" + loc.iconId;
    }
    if((mq_ParamExists(loc.userFields)) && (mq_ParamExists(loc.userFields.user1)) && (loc.userFields.user1.length > 0)) {
        url+="&";
        if (prefix != "")
            url+=prefix;

        url+="user1";

        if (prefix == "poi_")
            url+="_";

        if (num > -1)
            url+=num;

        url+="=" + loc.userFields.user1;

    }

    return url;
}

//function used to output next and previous links
function mq_output_next_prev(container, av) {

    if(!mq_ParamExists(av))
        return;

    var div = createDiv (container, 'nextPrev', '');

    var pDiv = createDiv (div, 'prev', '');
    if(mq_ParamExists(av.prevData)) {
        var prevA = createA (pDiv, 'advantage.adp?template=search_results&url=' + escape(av.prevData), '');
            prevA.appendChild (document.createTextNode ('< Previous'));
    }

    var bDiv = createDiv (div, 'back', '');
        bDiv.appendChild (document.createTextNode ('[ '));
        var backA = createA (bDiv, '#', '');
            backA.appendChild (document.createTextNode ('Back to Top'));
        bDiv.appendChild (document.createTextNode (' ]'));

    var nDiv = createDiv (div, 'next', '');
    if(mq_ParamExists(av.nextData)) {
        var nextA = createA (nDiv, 'advantage.adp?template=search_results&url=' + escape(av.nextData), '');
            nextA.appendChild (document.createTextNode ('Next >'));
    }
}
