/* 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" ? " mi" : " 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.className= "mqhrline";
                var hrule = document.createElement ('div');
                hrule.className='pSeparator';
        td5.appendChild (hrule);

            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 = "?transaction=locmap&tempSet=locmap";
   url+=createMapNV(loc.map);

   url+="&pheight=324&pwidth=504";

   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(av) {
   if(!mq_ParamExists(av))
         return;
     // document.write("<td width=\"20\"><img src=\"images/spacer.gif\" width=\"20\" height=\"5\"></td>");
      //document.write("<td colspan=\"2\" align=\"left\">");

   //document.write ("<div style=\"width:720px;\">");
      document.write ("<td  align=\"left\">");

      if(mq_ParamExists(av.prevData)) {
         document.write ("<a class=\"defaultSmall\" href=\"\" id=\"mqPrev\" onClick=\"addRevertState('" + av.prevData + "','mqPrev');\">&lt;&nbsp;Previous</a>");
      }

      document.write (" </td>");
     // document.write ("<td align=\"center\">&nbsp;");

         //document.write ("[ <a class=\"defaultSmall\" href=\"#top\">Back to Top</a> ]");

     // document.write (" </td>");
      document.write ("<td align=\"right\"> ");

      if(mq_ParamExists(av.nextData)) {
         document.write("<a href=\"\" class=\"defaultSmall\" id=\"mqNext\" onClick=\"addRevertState('" + av.nextData + "','mqNext',av);\" >Next&nbsp;&gt;</a>");
      }

      document.write (" &nbsp;</td>");
    //  document.write ("<div style=\"clear: both\"> </div>");
     // document.write ("</div>");
  // document.write("</td>");

}//end function mq_output_next_prev(av) {
function addRevertState(url,direction,av){
 url = url+"&revertState="+getElementById("revertState").value+getElementById("mqSearchUrl").value;
 url = url + "&mapSessionId="+getElementById("mapSessionId").value;
 url = mqurlencode(url);
 url = "&url=" + url;
 getElementById(direction).href="?"+url;

}

