/* contains search results functions and identify icon */

//function used to display the search results
//rewritten to use innerHTML instead of DOM for easier management
function mq_display_searchResults(container, searchResults) {
    if(!mq_ParamExists(searchResults))
        return;

    var tbody = document.createElement ('tbody');
	var maxResults = searchResults.count;
	var htmlBlock = '<table border="0" cellspacing="0" cellpadding="0" width="100%" id="resultsTbl">';
	htmlBlock += '<tr class="a510"><td></td><td>Distance</td><td>Address</td><td>Store Details</td></tr>';
	

    for(var count=0;count<maxResults;count++) {
        var loc = searchResults.getAt[count];

        htmlBlock += '<tr>';
		htmlBlock += '<td class="eightball">';
      	
            if (mq_ParamExists (av.proxIconId)) {
				htmlBlock += '<img src="/images/icons/' + av.proxIconId + '_' + loc.number + '.gif" alt="' + loc.number + '" />';
            } else {
                htmlBlock += loc.number;
            }
		htmlBlock += '</td>';
//distance to dest		
		htmlBlock += '<td>';
		if (mq_ParamExists(loc.distance)) {
			htmlBlock += loc.distance.value + (loc.distance.units == "mi" ? " miles" : " kilometers");
		} else {
			htmlBlock += '';
		}
		htmlBlock += '</td>';
//loc name	e.g. 551 North Main Street or Temporarily Closed
		htmlBlock += '<td>';
		if (mq_ParamExists(loc.name) && loc.name.length) {
			htmlBlock += loc.name + '<br />';
		} else {
			loc.name = '';
		}
//loc address e.g. 551 North Smithfield Avenue
		if (mq_ParamExists(loc.address) && loc.address.length) {
			htmlBlock += loc.address + '<br />';
		}
//city e.g. Chicago
		if (mq_ParamExists(loc.city) && loc.city.length) {
			htmlBlock += loc.city + ', ';
		}
//state
		if (mq_ParamExists(loc.stateProvince) && loc.stateProvince.length) {
			htmlBlock += loc.stateProvince + ' ';
		}
//zipcode
		if (mq_ParamExists(loc.postalCode) && loc.postalCode.length) {
			htmlBlock += loc.postalCode + '<br />';
		}
//open times
		if (mq_ParamExists(loc.userFields.user1) && loc.userFields.user1.length) {
			htmlBlock += loc.userFields.user1 + '<br />';
		} else {
			loc.userFields.user1 = '';
		}
		htmlBlock += '</td>';
		
		htmlBlock += '<td>';
		htmlBlock += '<ul class="areaLinks">';
		
		strURL = generateLocMapRQ(loc);
		strdestURL = generateDestURL(loc);
		if(strURL != "") {
			htmlBlock += '<li><a href="' + strURL + '&iconId=30689001" class="storeIcon">Store Information</a></li>';
		}

		if (mq_ParamExists(loc.recordId) && (parseInt(loc.recordId, 10) > 0) ) {
			htmlBlock += '<li><a href="'+ strdestURL + '" class="driveIcon">Driving Directions</a></li>';
		}
		if (mq_ParamExists(loc.recordId) && (parseInt(loc.recordId, 10) > 0) ) {
			htmlBlock += '<li><a href="http://staples.shoplocal.com/staples/new_user_entry.aspx?SneakPeek=y&SiteID=144&PretailerID=-99906&adref=staples_store_locator&StoreRef=' + parseInt(loc.recordId, 10) + '" class="specialIcon">Weekly Ad</a></li>';
		}
		htmlBlock += '</ul>';
		htmlBlock += '</td>';
		htmlBlock += '</tr>';
        if(count < eval(searchResults.count)-1) {
			htmlBlock += '<tr><td colspan="4"><hr /></td></tr>';
        }
    }
	htmlBlock += '<tr><td colspan="4"> </td></tr>';
	htmlBlock += '</table>';
	document.getElementById(container).innerHTML=htmlBlock;
}




//A duplicate function from the above, modified for the 1024px layout of staples.com 5.8.5
function mq_display_searchResults_1024(container, searchResults) {
    if(!mq_ParamExists(searchResults))
        return;

    var tbody = document.createElement ('tbody');
	var maxResults = searchResults.count;
	var htmlBlock = '<table border="0" cellspacing="0" cellpadding="0" width="100%" id="resultsTbl">';
	//htmlBlock += '<tr class="a510"><td></td><td>Distance</td><td>Address</td><td>Store Details</td></tr>';
	htmlBlock += '<tr class="a400"><td></td><td width="220">Address</td><td>Distance</td><td width="188">Hours</td><td width="170" class="sdss">Store Details</td><td></td></tr>';

    for(var count=0;count<maxResults;count++) {
        var loc = searchResults.getAt[count];

//chuck out the icon for start of numbering
        htmlBlock += '<tr>';
		htmlBlock += '<td class="eightball">';
      	
            if (mq_ParamExists (av.proxIconId)) {
				htmlBlock += '<img src="/images/icons/' + av.proxIconId + '_' + loc.number + '.gif" alt="' + loc.number + '" />';
            } else {
                htmlBlock += loc.number;
            }
		htmlBlock += '</td>';

//chuck out the address pieces
//loc name	e.g. 551 North Main Street or Temporarily Closed
		htmlBlock += '<td>';
		if (mq_ParamExists(loc.name) && loc.name.length) {
			htmlBlock += loc.name + '<br />';
		} else {
			loc.name = '';
		}
//loc address e.g. 551 North Smithfield Avenue
		if (mq_ParamExists(loc.address) && loc.address.length) {
			htmlBlock += loc.address + '<br />';
		}
//city e.g. Chicago
		if (mq_ParamExists(loc.city) && loc.city.length) {
			htmlBlock += loc.city + ', ';
		}
//state
		if (mq_ParamExists(loc.stateProvince) && loc.stateProvince.length) {
			htmlBlock += loc.stateProvince + ' ';
		}
//zipcode
		if (mq_ParamExists(loc.postalCode) && loc.postalCode.length) {
			htmlBlock += loc.postalCode + '<br />';
		}
		
//moved phone here		
if (mq_ParamExists(loc.userFields.user1) && loc.userFields.user1.length) {
			htmlBlock += loc.userFields.user1 + '<br />';
		} else {
			loc.userFields.user1 = '';
		}
		htmlBlock += '</td>';
		
		

		
//chuck out dist
//distance to dest		- moved from 1st to 2nd col
		htmlBlock += '<td>';
		if (mq_ParamExists(loc.distance)) {
			htmlBlock += loc.distance.value + (loc.distance.units == "mi" ? " miles" : " kilometers");
		} else {
			htmlBlock += '';
		}
		htmlBlock += '</td>';		
		

//chuck out new col for store hours
//store hours from common_display.js
		htmlBlock += '<td nowrap>';
			if (mq_ParamExists(loc.userFields.user3) && loc.userFields.user3.length) {
				htmlBlock += '<b>Monday - Friday:</b> ' + loc.userFields.user3 + '<br />';
			}
			if (mq_ParamExists(loc.userFields.user4) && loc.userFields.user4.length) {
				htmlBlock += '<b>Saturday:</b> ' + loc.userFields.user4 + '<br />';
			}
			if (mq_ParamExists(loc.userFields.user5) && loc.userFields.user5.length) {
				htmlBlock += '<b>Sunday:</b> ' + loc.userFields.user5 + '<br />';
			}
		htmlBlock += '</td>';



//store details
		
		
		htmlBlock += '<td nowrap>';
		htmlBlock += '<ul class="areaLinks">';
		
		strURL = generateLocMapRQ(loc);
		strdestURL = generateDestURL(loc);
		if(strURL != "") {
			htmlBlock += '<li><a href="' + strURL + '&iconId=30689001&pwidth=700" class="storeIcon">Store Information</a></li>';
		}

		if (mq_ParamExists(loc.recordId) && (parseInt(loc.recordId, 10) > 0) ) {
			htmlBlock += '<li><a href="'+ strdestURL + '" class="driveIcon">Driving Directions</a></li>';
		}
		if (mq_ParamExists(loc.recordId) && (parseInt(loc.recordId, 10) > 0) ) {
			htmlBlock += '<li><a href="http://staples.shoplocal.com/staples/new_user_entry.aspx?SneakPeek=y&SiteID=144&PretailerID=-99906&adref=staples_store_locator&StoreRef=' + parseInt(loc.recordId, 10) + '" class="specialIcon">Weekly Ad</a></li>';
		}
		htmlBlock += '</ul>';
		htmlBlock += '</td>';
		htmlBlock += '</tr>';
        if(count < eval(searchResults.count)-1) {
			htmlBlock += '<tr><td colspan="6"><hr /></td></tr>';
        }
    }
	htmlBlock += '<tr><td colspan="6"> </td></tr>';
	htmlBlock += '</table>';
	document.getElementById(container).innerHTML=htmlBlock;
}









//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;
}
function generateDestURL(loc) {
    var url = "advantage.adp?transaction=route";
        url+= createMapNV(loc.map);
        url+= createLocNV(loc,"dest",-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.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;

    }
	if((mq_ParamExists(loc.userFields)) && (mq_ParamExists(loc.userFields.user2)) && (loc.userFields.user2.length > 0)) {
        url+="&";
        if (prefix != "")
            url+=prefix;

        url+="user2";

        if (prefix == "poi_")
            url+="_";

        if (num > -1)
            url+=num;

        url+="=" + loc.userFields.user2;

    }
	if((mq_ParamExists(loc.userFields)) && (mq_ParamExists(loc.userFields.user3)) && (loc.userFields.user3.length > 0)) {
        url+="&";
        if (prefix != "")
            url+=prefix;

        url+="user3";

        if (prefix == "poi_")
            url+="_";

        if (num > -1)
            url+=num;

        url+="=" + loc.userFields.user3;

    }
	if((mq_ParamExists(loc.userFields)) && (mq_ParamExists(loc.userFields.user4)) && (loc.userFields.user4.length > 0)) {
        url+="&";
        if (prefix != "")
            url+=prefix;

        url+="user4";

        if (prefix == "poi_")
            url+="_";

        if (num > -1)
            url+=num;

        url+="=" + loc.userFields.user4;

    }
	if((mq_ParamExists(loc.userFields)) && (mq_ParamExists(loc.userFields.user5)) && (loc.userFields.user5.length > 0)) {
        url+="&";
        if (prefix != "")
            url+=prefix;

        url+="user5";

        if (prefix == "poi_")
            url+="_";

        if (num > -1)
            url+=num;

        url+="=" + loc.userFields.user5;

    }
	if((mq_ParamExists(loc.userFields)) && (mq_ParamExists(loc.userFields.user6)) && (loc.userFields.user6.length > 0)) {
        url+="&";
        if (prefix != "")
            url+=prefix;

        url+="user6";

        if (prefix == "poi_")
            url+="_";

        if (num > -1)
            url+=num;

        url+="=" + loc.userFields.user6;

    }
	if((mq_ParamExists(loc.userFields)) && (mq_ParamExists(loc.userFields.user7)) && (loc.userFields.user7.length > 0)) {
        url+="&";
        if (prefix != "")
            url+=prefix;

        url+="user7";

        if (prefix == "poi_")
            url+="_";

        if (num > -1)
            url+=num;

        url+="=" + loc.userFields.user7;

    }
	if((mq_ParamExists(loc.userFields)) && (mq_ParamExists(loc.userFields.user8)) && (loc.userFields.user8.length > 0)) {
        url+="&";
        if (prefix != "")
            url+=prefix;

        url+="user8";

        if (prefix == "poi_")
            url+="_";

        if (num > -1)
            url+=num;

        url+="=" + loc.userFields.user8;

    }
	if((mq_ParamExists(loc.userFields)) && (mq_ParamExists(loc.userFields.user9)) && (loc.userFields.user9.length > 0)) {
        url+="&";
        if (prefix != "")
            url+=prefix;

        url+="user9";

        if (prefix == "poi_")
            url+="_";

        if (num > -1)
            url+=num;

        url+="=" + loc.userFields.user9;

    }
	if((mq_ParamExists(loc.userFields)) && (mq_ParamExists(loc.userFields.user10)) && (loc.userFields.user10.length > 0)) {
        url+="&";
        if (prefix != "")
            url+=prefix;

        url+="user10";

        if (prefix == "poi_")
            url+="_";

        if (num > -1)
            url+=num;

        url+="=" + loc.userFields.user10;

    }

    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 >'));
    }
}
