/* 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');
                td2.className = 'resultAddr';
                mq_display_address_location(td2, loc, generateIdMap(loc));
				
				if (mq_ParamExists(loc.userFields) && mq_ParamExists(loc.userFields.user5) && loc.userFields.user5.length) { 
					if(loc.userFields.user5.toUpperCase() == 'TRUE'){
					  var span = createSpan (td2, '', '');
					  var em = span.appendChild (document.createElement ('strong'));
					  em.appendChild (document.createTextNode ('Carte Tim Express acceptée'));
					  td2.appendChild (document.createElement ('br'));
					}
				}

                if (mq_ParamExists(loc.distance)) {
                    var distance = loc.distance.value + (loc.distance.units == "mi" ? " miles" : " kilomètres");
                } else {
                    var distance = '';
                }
                td2.appendChild (document.createTextNode (distance));

url = "?transaction=route&tempset=fr_route&desticonid=31332002&origiconid=31332001&destrecordId="+ loc.recordId +"&destphone="+ loc.userFields.user1;
url += "&destaddress="+ loc.address +"&destcity="+ loc.city +"&deststateProvince="+ loc.stateProvince +"&destpostalCode="+ loc.postalCode +"&destcountry="+ loc.country;
if (mq_ParamExists(av.locations.getAt[0].address)) { url += "&origaddress="+ av.locations.getAt[0].address; }
if (mq_ParamExists(av.locations.getAt[0].city)) { url += "&origcity="+ av.locations.getAt[0].city; }
if (mq_ParamExists(av.locations.getAt[0].stateProvince)) { url += "&origstateProvince="+ av.locations.getAt[0].stateProvince; }
if (mq_ParamExists(av.locations.getAt[0].country)) { url += "&origcountry="+ av.locations.getAt[0].country; }
if (mq_ParamExists(av.locations.getAt[0].postalCode)) { url += "&origzip="+ av.locations.getAt[0].postalCode; }
if (av.parameters.units == 'km') { url += "&units=km"; } else { url += "&units=mi"; }
url += "&origlatitude="+ av.locations.getAt[0].latitude +"&origlongitude="+ av.locations.getAt[0].longitude +"&pwidth=420&pheight=342&routeLanguage=fr";
createLink(td2, url, 'Comment s\`y rendre en auto','');

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

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

                var td4 = document.createElement ('td');
                    td4.colSpan = 4;
                    td4.appendChild (document.createElement ('br'));

            tr2.appendChild (td4);
            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&tempset=fr_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=fr_search_results&url=' + escape(av.prevData), '');
            prevA.appendChild (document.createTextNode ('< Précédent'));
    }

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

