/* ***********************************************************************************

This file contains the functions specific to the search results template as well as IdentifyIcon
Should always be included after the common file as well as the insert script tag.

**************************************************************************************** */

function SendToServiceSelectorPage(address,city,stateProvince,postalCode,PhoneNo,locationId, partnerId, locationCode,retailerType)
{
    address = address.replace('#', '');
    if(retailerType == 'undefined')
    {
        retailerType = '0';
    }
  navigateWithReferrer("http://order.yesvideo.com/serviceselector.html?Address="+address+"&City="+city+"&State="+stateProvince+"&Postcode="+postalCode+"&PhoneNo="+PhoneNo+"&LocationId="+locationId+"&PartnerId="+partnerId+"&LocationCode="+locationCode+"&RetailerType="+retailerType);
}

function navigateWithReferrer(url)
{
    var fakeLink = parent.document.createElement("a");
    if (typeof(fakeLink.click) == 'undefined')
        parent.location.href = url;  // sends referrer in FF, not in IE
    else
    {
        fakeLink.href = url;
        parent.document.body.appendChild(fakeLink);
        fakeLink.click();   // click() method defined in IE only
    }
}

function showPopup(key){
	var locations = mq.locations;
	var loc = null;
	for(var i =0; i < locations.getSize(); i++){
		if(key == locations.getAt(i).getRecordId()){
			loc = locations.getAt(i);
			break;
		}
	}
	
	
	if(loc != null){
		var x = loc.getX();
		var y = loc.getY();
		var targ = loc.poiLayer;
		if (targ.id != mq.popup.getState() || mq.popup.popupDiv.style.visibility != "visible")
        {
            var topoffset = 0;
            var leftoffset = 0;
            var temp = targ;
            while(temp.offsetParent)
            {
				leftoffset   += temp.offsetLeft;
                topoffset    += temp.offsetTop;
                temp = temp.offsetParent;
            }
			mq.popup.show(leftoffset + parseInt(targ.width)/2, topoffset + parseInt(targ.height)/2, loc.htmlStr(true));
			//mq.popup.showPopUpOverLocColl(leftoffset + parseInt(targ.width)/2,
			//		topoffset + parseInt(targ.height)/2,targ.id,locations,targ.width,mq.mapImageId);
        }
		
	}
}

function hidePopup(key){
	var locations = mq.locations;
	var loc = null;
	for(var i =0; i < locations.getSize(); i++){
		if(key == locations.getAt(i).getRecordId()){
			loc = locations.getAt(i);
			break;
		}
	}
	
	if(loc != null){
		hidePopUp(mq.mapImageId);
	}

}



//function used to display the search results
//does not start or begin table, only displays results as row
//searchResults - the location collection containing the results of the search
function mq_display_searchResults(searchResults) {
   if(!mq_ParamExists(searchResults))
      return;
    
   for(var count=0;count<searchResults.count;count++) {
      var loc = searchResults.getAt[count];
	  var locInfo = getLocationInfo(loc);
      document.write("<tr >");
         //document.write("<td><img src=\"images/spacer.gif\" width=\"10\" height=\"10\"></td>");
         //document.write("<td valign=\"top\"><img src=\"images/numbers/401_" + (loc.number) + ".gif\" width=\"20\" height=\"20\" alt=\"" + (loc.number) + "\" border=\"0\" /></td>");
         //document.write("<td width=\"216\">");
            //mq_display_map_image_tag(loc.map,"");
         //document.write("</td>");
         document.write("<td width=\"10\">&nbsp;</td>");
         document.write("<td valign=\"top\" class=\"RegFont\">");
		 document.write("<table cellpadding=2 cellspacing=0 border=0>");
		 
		 //document.write(locationInfo[4][2]);
            //mq_display_address_location(loc,generateLocMapRQ(loc));
			var a = "<a href='#' onMouseOver='showPopup(\"" + loc.recordId + "\")' onMouseOut='hidePopup(\"" + loc.recordId + "\")'>";
			
			
			if(locInfo != null){
				if(locInfo.logoUrl !=""){
					document.write("<tr><td colspan='2'>");
					document.write(a);
					document.write("<img src='" + locInfo.logoUrl + "' border=0/>");
					if(locInfo.sameDayLogoUrl !=""){
						document.write("<img src='" + locInfo.sameDayLogoUrl + "' border=0/>");
					}
					document.write("</a></td></tr>");
				}					
				
			}

			document.write("<tr valign='top'><td>");
			document.write(a);
			document.write("<img src='images/numbers/400_" + loc.number + ".gif' border='0'/>");
			document.write("<a></td>");
			document.write("<td class=\"RegFont\">");
			document.write(a);
			document.write(loc.name + "</a>");
			document.write("<br>" + loc.address);
			document.write("<br>" + loc.city + ", " + loc.stateProvince + " " + loc.postalCode);
			document.write("<br>" + loc.userFields.user1);
            if (mq_ParamExists(loc.distance))
               document.write("<br>" + "Distance: " + loc.distance.value + (loc.distance.units == "mi" ? " miles" : " kilometers") );
            else
				document.write("<br>");
			//document.write("<br/><a href=/YV/serviceselector.html?minilab=" + loc.searchFields.search4 + "&distance=" + loc.distance.value + " " + loc.distance.units + "&" + generateLocMapRQ(loc) + "'><img src='images/btnDetails.gif' border='0'></a>");
			document.write("<br/><a href='#'><img src='images/btnDetails.gif' border='0' onclick='SendToServiceSelectorPage(\"" +loc.address+ "\",\"" +loc.city+ "\",\"" +loc.stateProvince+ "\",\"" +loc.postalCode+ "\",\"" +loc.userFields.user1+ "\",\"" +loc.recordId+ "\",\"" +loc.userFields.user4+ "\",\"" +loc.userFields.user5+ "\",\""+loc.searchFields.search4+"\");'></a><br />");
			document.write("<br></td></tr>");
			document.write("</table>");
			
			document.write("</td>");

         document.write("</tr>");

         /*if(count < eval(searchResults.count)-1) {
            document.write("<tr>");
            document.write("<td>&nbsp;</td>");
            document.write("<td colspan=\"5\"><br/>");
            document.write("<td>&nbsp;</td>");
            document.write("</tr>");
            document.write("<tr>");
               document.write("<td>&nbsp;</td>");
               document.write("<td colspan=\"5\">");
                  //document.write("<img src=\"images/rule.gif\" width=\"636\" height=\"1\" alt=\"\" border=\"0\"><br>");
                  //document.write("<br/>");
               document.write("</td>");
            document.write("</tr>");
            //document.write("<tr>");
            //document.write("<td>&nbsp;</td>");
            //document.write("<td colspan=\"5\">");
            //document.write("<td>&nbsp;</td>");
            //document.write("</tr>");
         }*///end if(count < eval(searchResults.count)-1) {
    }//end for(var count=0;count<searchResults.count;count++) {
}//end function mq_display_searchResults(searchResults) {

//creates the url required to transform a location into a locmap request.
function generateLocMapRQ(loc) {
   var url = "transaction=locmap";

   url+=createMapNV(loc.map);

   url+="&pheight=250&pwidth=375";

   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 = "";
   var s;

   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;
       s=loc.recordId;
      url+="=" + urlEncoder(s);
   }
   if(mq_ParamExists(loc.name) && loc.name.length > 0)
   {
      url+="&";
      if (prefix != "")
         url+=prefix;

      url+="name";

      if (num > -1)
         url+=num;
       s=loc.name;
       s = s.replace("&#39","'");
       s = s.replace("&#039;","'");
      url+="=" + urlEncoder(s);
   }
   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;
}//end function createLocNV(loc, prefix, num) {

//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 ("<div style=\"width:50%\">");
  //document.write ("<div class=\"prevLink\" >&nbsp; ");

   if(mq_ParamExists(av.prevData)) {
      document.write ("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class=\"mqAnchor\" href=\"\" id=\"mqPrev\" onClick=\"addRevertState('" + av.prevData + "','mqPrev');\">&lt;&nbsp;Previous</a>");
   }

  //document.write (" </div>");
   //document.write ("<div class=\"backToTop\"> ");

      //document.write (" [ <a class=\"mqAnchor\" href=\"#identifier\">Back to Top</a> ] ");

   //document.write (" </div>");
  //document.write ("<div class=\"nextLink\" align='right'> ");

   if(mq_ParamExists(av.nextData)) {
      document.write("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"\" class=\"mqAnchor\" id=\"mqNext\" onClick=\"addRevertState('" + av.nextData + "','mqNext',av);\" >Next&nbsp;&gt;</a>");
   }

  //document.write (" &nbsp;</div>");
  //document.write ("</div>");

}//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 = "template=map_search&url=" + url;
 getElementById(direction).href="?"+url;

}

