/* 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_addressextended_location(td2, loc, generateLocMapRQ(loc));
                if (av.locations.getAt[0].address) { 
    	            url = "?transaction=route&pwidth=400&pheight=250&destrecordId="+ urlEncoder(loc.recordId) +"&destphone="+ urlEncoder(loc.userFields.user1);
	                url += "&destaddress="+ urlEncoder(loc.address) +"&destcity="+ urlEncoder(loc.city) +"&deststateProvince="+ urlEncoder(loc.stateProvince) +"&destpostalCode="+ urlEncoder(loc.postalCode) +"&destcountry="+ urlEncoder(loc.country);
					url += "&origaddress="+ urlEncoder(av.locations.getAt[0].address); 
				}else{
				    url = "?template=route_query&transaction=route&pwidth=400&pheight=250&destrecordId="+ urlEncoder(loc.recordId) +"&destphone="+ urlEncoder(loc.userFields.user1);
                	url += "&destaddress="+ urlEncoder(loc.address) +"&destcity="+ urlEncoder(loc.city) +"&deststateProvince="+ urlEncoder(loc.stateProvince) +"&destpostalCode="+ urlEncoder(loc.postalCode) +"&destcountry="+ urlEncoder(loc.country);
				}
                if (av.locations.getAt[0].city) { url += "&origcity="+ urlEncoder(av.locations.getAt[0].city); }
                if (av.locations.getAt[0].stateProvince) { url += "&origstateProvince="+ urlEncoder(av.locations.getAt[0].stateProvince); }
                if (av.locations.getAt[0].country) { url += "&origcountry="+ urlEncoder(av.locations.getAt[0].country); }
                if (av.locations.getAt[0].postalCode) { url += "&origpostalCode="+ urlEncoder(av.locations.getAt[0].postalCode); }
                url += "&origlatitude="+ urlEncoder(av.locations.getAt[0].latitude) +"&origlongitude="+ urlEncoder(av.locations.getAt[0].longitude);
				url += "&mapStyle=european"; 
                driving_directions_link(td2, loc, url);

            var td3 = document.createElement ('td');
                td3.className = 'resultOptions';

				if (mq_ParamExists(loc.searchFields)){
					var imgCnt = 0;
					for(i_op=1;i_op<=10;i_op++){
						
						var option = 'search' + i_op;
						if(loc.searchFields[option] == 1) {
							if ( imgCnt == 5 ){
								td3.appendChild(document.createElement ('br'));
								imgCnt = 0;
							}
							imgCnt++;
							if (i_op == 2 || i_op == 3) {
							createImg (td3, 'images/' + option + '.jpg', '', '', '', '', i_op);
							}
						}
					}
				}

            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;
//    }
	url+="&mapstyle=european";
    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");
    t = t.replace(" ", "%20");
    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.recordId) && loc.recordId.length > 0) {
        url+="&";
        if (prefix != "")
            url+=prefix;

        url+="recordId";

        if (num > -1)
            url+=num;

        url+="=" + urlEncoder(loc.recordId);
    }
    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 >'));
    }
}

